Vue之监听数据的原理详解

 更新时间:2022年01月10日 08:57:24   作者:王同学要努力  
这篇文章主要为大家介绍了Vue之监听数据的原理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助<BR>

在这里插入图片描述

<body>
    <div id="root">
        <h1>学生的基本信息</h1>
        <button @click="student.age++">年龄+1岁</button>
        <button @click="addSex">添加性别属性默认值是男</button><br>
        <button @click="student.sex='未知' ">修改属性值</button><br>
        <button @click="addFriend">在列表的首位就添加一个朋友</button><br>
        <button @click="updateFriend">更新第一个人的名字</button><br>
        <button @click="addHobby">添加一个爱好</button><br>
        <button @click="change">修改第一个爱好为爬山</button><br>
        <button @click="removeSmoke">过滤掉抽烟</button><br>
        <h3>姓名:{{student.name}}</h3>
        <h3>年龄:{{student.age}}</h3>
        <h3 v-if="student.sex">性别:{{student.sex}}</h3>
        <h3>爱好:</h3>
        <hr>
        <ul>
            <li v-for="(h,index) in student.hobby" :key="index">{{h}}</li>
        </ul>
        <hr>
        <h3>朋友们:</h3>
        <ul>
            <li v-for="(f,index) in student.friends" :key="index">{{f.name}}--{{f.age}}</li>
        </ul>
    </div>
    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: "#root ",
            data: {
                student: {
                    name: 'zhang',
                    age: 18,
                    hobby: ['喝酒', '抽烟', '烫头'],
                    friends: [{
                        name: 'li',
                        age: 15
                    }, {
                        name: 'wang',
                        age: 10
                    }]
                }
            },
            methods: {
                addSex() {
                    this.$set(this.student, 'sex', '男')
                        // Vue.set(vm.student, 'sex', '男')
                },
                addFriend() {
                    this.student.friends.unshift({
                        name: 'YY',
                        age: 66
                    })
                },
                updateFriend() {
                    this.student.friends[0].name = "小刘";
                    this.student.friends[0].age = 22
                },
                addHobby() {
                    this.student.hobby.push('唱歌')
                },
                change() {
                    //splice添加表示从第0个开始,删除一个,新增加的值是爬山
                    //注意:不能直接通过数组下标的形式进行修改 
                    //this.student.hobby.splice(0, 1, '爬山')
                    //Vue.set(this.student.hobby, 0, '爬山')
                    this.$set(this.student.hobby, 0, '爬山')
                },
                removeSmoke() {
                    //filter不影响原数组的改变
                    this.student.hobby = this.student.hobby.filter((h) => {
                        return h !== '抽烟'
                    })
                }
            }
        })
    </script>
</body>

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • vue.js 初体验之Chrome 插件开发实录

    vue.js 初体验之Chrome 插件开发实录

    这篇文章主要介绍了vue.js 初体验之Chrome 插件开发实录 ,需要的朋友可以参考下
    2017-05-05
  • vue项目实现页面跳转的方法

    vue项目实现页面跳转的方法

    这篇文章主要给大家分享的是vue项目实现页面跳转的方法,vue-router是前端开发中用来实现路由页面跳转的一个模块。下面小编将带来如何在已经创建好的vue-router项目基础下实现页面跳转,需要的朋友可以参考一下
    2021-11-11
  • 详解VueJs中的V-bind指令

    详解VueJs中的V-bind指令

    v-bind 主要用于属性绑定,比方你的class属性,style属性,value属性,href属性等等,只要是属性,就可以用v-bind指令进行绑定.这篇文章主要介绍了VueJs中的V-bind指令,需要的朋友可以参考下
    2018-05-05
  • 关于Element-UI中slot的用法及说明

    关于Element-UI中slot的用法及说明

    这篇文章主要介绍了关于Element-UI中slot的用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • vue,uniapp--js禁止页面滚动,取消滚动方式

    vue,uniapp--js禁止页面滚动,取消滚动方式

    这篇文章主要介绍了vue,uniapp--js禁止页面滚动,取消滚动方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • vue中process.env的具体使用

    vue中process.env的具体使用

    本文主要介绍了vue中process.env的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • vue使用docx-preview实现docx文件在线预览功能全过程

    vue使用docx-preview实现docx文件在线预览功能全过程

    文件在线预览是目前移动化办公的一种新趋势,下面这篇文章主要给大家介绍了关于vue docx-preview实现docx文件在线预览功能的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • vue3.0中使用Element-Plus中Select下的filter-method属性代码示例

    vue3.0中使用Element-Plus中Select下的filter-method属性代码示例

    这篇文章主要给大家介绍了关于vue3.0中使用Element-Plus中Select下的filter-method属性的相关资料,Filter-method用法是指从一组数据中选择满足条件的项,文中通过图文以及代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • 基于vue实现swipe轮播组件实例代码

    基于vue实现swipe轮播组件实例代码

    本篇文章主要介绍了基于vue实现swipe轮播组件实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Vue实现图片预览功能的详细指南

    Vue实现图片预览功能的详细指南

    在现代 web 应用程序中,图片预览功能提升了用户体验,使用户可以在上传图片之前查看图片内容,本文将详细介绍如何在 Vue.js 应用中实现图片预览功能,包括基本实现、进阶功能、与 Element UI 的集成、常见优化技巧以及与其他库的结合使用,需要的朋友可以参考下
    2024-09-09

最新评论