【VUE前进之路】使用数据代理,计算属性与监视属性的妙用

这篇具有很好参考价值的文章主要介绍了【VUE前进之路】使用数据代理,计算属性与监视属性的妙用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.数据代理

1.1什么是数据代理

通过一个对象代理对另一个对象中属性的操作(读/写)
1.Vue中的数据代理:通过vm对象来代理data对象中属性的操作(读/写)
2.Vue中数据代理的好处:更加方便的操作data中的数据
3.基本原理:通过0bject . defineProperty( )把data对象中所有属性添加到vm上。为每一一个 添加到vm上的属性,都指定个getter/setter。在getter/setter内部去操作(读/写) data中对应的属性。简单来说就是把data的属性全部都复制给了_data了一份,可以让vm进行使用

1.2了解使用数据代理

Object.defineProperty方法(给对象添加属性方法的一个方法)这个方法会传入三个参数分别是 对象名,属性名,配置项
在这里我们可以看到,这个颜色稍微的优点变化(这里就是使用Object.defineProperty方法进行添加的,这里的age是不可以进行枚举的,即不参与遍历)

    <script>
    let person = {
     
        name:'大熊'
        sex:'男',
    }    
    Object.defineProperty(person,'address',{
     
        value:18
    })
    console.log(person);
    </script>

这里可以使用Object.keys()进行验证一下(并没有age这个属性)(可以看到依然没有age)
vue数据代理的好处,Vue基础专栏,vue.js,前端,javascript
当然也可以使用for… in进行遍历一下这个对象
vue数据代理的好处,Vue基础专栏,vue.js,前端,javascript
如和才能让他可以被枚举呢?(这里就使用 enumerable 只要将它的值改为true即可)enumerable: true (是否可以被枚举)writable:true(是否可以修改属性)configurable: true(是否可以删除改属性)这四个基本配置项的内容(包括value)他们的默认值为false

    <script>
    let person = {
     
        name:'大熊',
        sex:'女',
    }    
    Object.defineProperty(person,'address',{
     
        value:18
    })
    for(k in person){
     
        console.log(k);
    }
    console.log(Object.keys(person));
    console.log(person);
    </script>

那问题来了,如何进行对数据的读取和修改呢?这里用到了两个方法,get和set
当有人读取person的age属性时,get函 数(getter)就会被调用,且返回值就是age值
当有人修改person的age属性时,set函数(setter)就会被调用,且会收到修改的具值

    <script>
        let number = 19;
        let person = {
     
            name: '大熊',
            sex: '女',
        }
        Object.defineProperty(person, 'address', {
     
            get() {
     
                console.log('age属性已被读取');
                return number;
            },
            set(value) {
     
                console.log('age属性已被修改');
                number = value
            }
        })
    </script>

2. 事件处理

1.使用v-on:xxx或@xxx绑定事件,其中xxx是事件名
2.事件的回调需要配置在methods对象中,最终会在vm上
3.methods中配置的函数,不可以使用箭头函数,否则this就不是vm了而是window
4.methods中配置的函数,都是被Vue所管理的函数,this的指向是vm或组件实例对象5.@click="demo"和@click="demo"效果一致,但后者可以传参
注:不要把事件回调方法data里,虽然可以实现相同的功能,但是这样会给增加一个数据代理,给一个方法添加数据代理是没有意义的文章来源地址https://www.toymoban.com/news/detail-783085.html

<div id="user">
        <h1>{
  {name}}吃饭了吗?</h1>
        <button v-on:click

到了这里,关于【VUE前进之路】使用数据代理,计算属性与监视属性的妙用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue新学习 02 vue命令v-model,数据代理(作用域和作用域链),事件,监听,条件渲染,计算属性(也就是把操作属性的语句放到vue实例中)

    双向绑定用命令v-model: v-bind的命令是单项去绑定data中的相关属性,此时的data是真正的data,并没有用变量声明的方式去接收vue实例对象,也就是例如用const vm = new Vue({})。而是直接就采用了new Vue({})这样子的形式,(v-bind和v-model在这个例子中都是如此,所以现在并没有数据

    2024年02月15日
    浏览(31)
  • vue全家桶进阶之路33:Vue3 计算属性computed

    在Vue3中,计算属性可以使用 computed 函数来定义。 computed 函数接受两个参数:第一个参数是一个函数,该函数返回计算属性的值;第二个参数是一个可选的配置对象,可以包含getter和setter函数,以及控制计算属性缓存的缓存配置。 Vue3中的计算属性与Vue2中的计算属性相比有以

    2023年04月18日
    浏览(34)
  • Vue-12、Vue监视属性

    1、介绍 Vue中的监视属性是通过watch选项来实现的。watch选项可以是一个对象,其中的每个属性都是要监视的属性名,而每个属性的值都是一个回调函数,用于处理这个属性的变化。 例如,假设有一个Vue实例的data对象中有一个属性message,我们想要监视这个属性的变化,可以通

    2024年01月25日
    浏览(31)
  • Vue3监视属性watch详解(附带详细代码与讲解!!!)

    watch() 默认是懒侦听的,即仅在侦听源发生变化时才执行回调函数。 第一个参数是侦听器的 源 。这个来源可以是以下几种: 一个函数, 一个返回值 一个ref 一个响应式对象(reactive定义的) ...或是由以上类型的值组成的数组 第二个参数是一个回调函数, 这个回调函数可接收三个

    2024年02月11日
    浏览(28)
  • Vue3的props需要注意的地方(简写与监视属性)

    在工作中踩了props的坑,总结一下: 1.props是可以在模板语法中简写的。就好比,toRefs了一下state。我们没必要在模板语法中加上props.xxx; 2.有时我们需要监视props的内容,可以用到监视属性watch。我们可以先复习一下watch在Vue3的用法: 具体也可以见一下这篇博客:Vue3中watch的

    2024年02月07日
    浏览(29)
  • 【Vue3】setup的注意点及watch监视属性的六种情况

    1.1setup的执行时间 1.setup的执行时间要比beforCreate执行要早 1.2.steup参数 setup的参数 1.props: 值为对象,包含: 组件外部传递过来,且组件内部声明接收了的属性 2.context:上下文对象 ①attrs:值为对象,包含: 组件外部传递过来,但没有在props配置中声明的属性,相当于 this.$attrs ②sl

    2023年04月22日
    浏览(27)
  • vue04---计算属性/监听(侦听)属性/Vue生命周期/组件介绍和使用/组件间通信/ref属性

    # 1 计算属性是基于它们的依赖变量进行缓存的 # 2 计算属性只有在它的相关依赖变量发生改变时才会重新求值,否则不会变(函数只要页面变化,就会重新运算) # 3 计算属性就像Python中的property,可以把方法/函数伪装成属性 # 4 计算属性,必须有返回值 基本使用 重写过滤案

    2024年02月08日
    浏览(53)
  • Vue-计算属性(computed)简单说明和使用

    学习vue的计算属性之前,我们先写一个案例,我们先用插值语法实现,然后再使用vue的计算属性实现,经过对比,我们就能掌握计算属性的精髓和原理 写一个简单的例子,姓和名分别用两个输入框控制,最后通过一个span标签拼接成一个全名 首先通过简单的插值语法实现,需

    2024年01月16日
    浏览(40)
  • Vue计算属性:简化数据处理和视图更新的利器

    计算属性:一个特殊属性,值依赖于另外一些数据动态计算出来。 🚩🚩🚩 计算属性特点:函数内使用的变量改变,重新计算结果返回。 💣💣💣 注意: ①、计算属性必须定义在computed节点中。 ②、计算属性必须是一个function,计算属性必须有返回值。 ③、计算属性不能

    2024年02月16日
    浏览(26)
  • 【Vue】学习笔记-列表渲染/数据监视

    v-for指令 用于展示列表数据 语法: v-for=“(item,index) in xxx” :key=“yyy” 可遍历:数组,对象,字符串(用的很少),指定次数(用的很少) 原理: 面试题:react. vue中的key有什么用?(key的内部原理) 虚拟Dom中key的作用: key是虚拟DOM对象的标识,档数据发生改变时,Vue会根据【

    2023年04月25日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包