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>

总结

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

相关文章

  • 如何使用Vue3+elementPlus的Tree组件实现一个拖拽文件夹管理

    如何使用Vue3+elementPlus的Tree组件实现一个拖拽文件夹管理

    最近在做一个文件夹管理的功能,要实现一个树状的拖拽文件夹面板,里面包含两种元素,文件夹以及文件,这篇文章主要介绍了使用Vue3+elementPlus的Tree组件实现一个拖拽文件夹管理 ,需要的朋友可以参考下
    2023-09-09
  • vue2结合echarts实现一个地图的效果

    vue2结合echarts实现一个地图的效果

    这篇文章主要介绍了vue2结合echarts实现一个地图的效果,本文通过实例代码给大家介绍的非常详细,对大家何用vue和echarts实现一个地图有一定的帮助,感兴趣的朋友一起看看吧
    2024-03-03
  • vue init webpack myproject构建项目 ip不能访问的解决方法

    vue init webpack myproject构建项目 ip不能访问的解决方法

    下面小编就为大家分享一篇vue init webpack myproject构建项目 ip不能访问的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • vue项目中常见问题及解决方案(推荐)

    vue项目中常见问题及解决方案(推荐)

    这篇文章主要介绍了vue项目中常见问题及解决方案,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • vue-route路由管理的安装与配置方法

    vue-route路由管理的安装与配置方法

    这篇文章主要介绍了vue-route路由管理的安装与配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • vuex Mutations同步Actions异步原理解析

    vuex Mutations同步Actions异步原理解析

    这篇文章主要为大家介绍了vuex Mutations同步Actions异步原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Ant Design编写登录和注册页面的教程

    Ant Design编写登录和注册页面的教程

    这篇文章主要介绍了Ant Design编写登录和注册页面的教程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Windows系统下使用nginx部署vue2项目的全过程

    Windows系统下使用nginx部署vue2项目的全过程

    nginx是一个高性能的HTTP和反向代理服务器,因此常用来做静态资源服务器和后端的反向代理服务器,下面这篇文章主要给大家介绍了关于Windows系统下使用nginx部署vue2项目的相关资料,需要的朋友可以参考下
    2023-03-03
  • vue项目实现面包屑导航

    vue项目实现面包屑导航

    这篇文章主要为大家详细介绍了vue项目实现面包屑导航,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 详解使用webpack打包编写一个vue-toast插件

    详解使用webpack打包编写一个vue-toast插件

    本篇文章主要介绍了详解使用webpack打包编写一个vue插件,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论