首页 > 其他分享 >vue响应式原理浅解

vue响应式原理浅解

时间:2022-08-19 11:24:35浏览次数:46  
标签:set obj addr get 浅解 响应 vue value 属性

响应式原理是通过Object.defineProperty()结合发布者订阅者模式来实现的,Object.defineProperty(obj,prop,desc)方法用来添加对象属性,并可进行监听其被获取和被修改。

obj:需要绑定属性的目标对象,与get和set方法不可同时存在。

prop:属性名

desc:属性描述对象,是一个配置项,在其中定义该属性的get和set方法.

set:修改属性时调用。

get:读取属性时调用。

 

    let obj = {
        name: "张三",
        age: 18,
    };
    Object.defineProperty(obj, "addr", {
        // value: "广州", //默认值属性,与get和set方法不可同时存在
        enumerable: true, //设置属性是否可以枚举,即是否允许遍历
        configurable: false, //设置属性是否可以删除或编辑
        // writable: true,//规定是否可被修改,与get和set方法不可同时存在
        get: function () {
            console.log("获取值")
            return value//属性值,
        },
        set:  (newVal)=> {
            console.log("修改值")
            value = newVal
        }
    });
//   let a=obj.addr先赋属性值再获取,不然是undefine
  obj.addr="深圳"
  let a=obj.addr
  console.log(a)//深圳

 

标签:set,obj,addr,get,浅解,响应,vue,value,属性
From: https://www.cnblogs.com/lbz-wer/p/16601357.html

相关文章

  • Vue面试题04:双向数据绑定相关
    双向数据绑定使用和原理定义:vue中双向绑定就是指v-model指令,可以绑定一个响应式数据到视图,同时视图中变化能同步改变该值。v-model是语法糖,作用在表单项和自定义组件......
  • Vue知识点:qs
    一、qs是什么?qs是一个增加了一些安全性的查询字符串解析和序列化字符串的库。可以进行对象与字符串之间的一个转换。二、qs的安装qs,是axios中自带的,也是npm仓库所管理的......
  • vue pdf导出 html2canvas+jspdf
    第一个.将页面html转换成图片npminstall--savehtml2canvas第二个.将图片生成pdfnpminstalljspdf--save官方文档  http://html2canvas.hertzen.com/ //导......
  • Vue 生命周期
    Vue生命周期常用生命周期钩子:mounted:发送ajax请求,启动定时器、绑定自定义事件、订阅消息等初始化操作beforeDestroy:清除定时器,解绑自定义事件、取消订阅消息等收尾工......
  • Vue基础——将原生事件绑定到组件
    Vue基础——将原生事件绑定到组件1、首先看一个小例子父组件:<template><divid="app"><my-button@click="handleClick"></my-button></div></template><......
  • 盘点Vue2和Vue3的10种组件通信方式(值得收藏)
    Vue中组件通信方式有很多,其中Vue2和Vue3实现起来也会有很多差异;本文将通过选项式API组合式API以及setup三种不同实现方式全面介绍Vue2和Vue3的组件通信方式。其中将要实现......
  • vue cli3 如何配置babel.config.js 可以按需引用多个不同的组件库
    module.exports={  presets:['@vue/app'],  plugins:[    ['import',      {        libraryName:'ant-design-v......
  • vue学习第二天
    1、清空npm缓存、清空node_module2、工程结构分析main.js->  引入的不是vue的构造函数,引入的是一个名为createApp的工厂函数          import......
  • 【nodejs】大事件后台管理项目(四)——Vue-admin-template结合
    观前提醒在黑马程序员公众号提供的材料中就包括了前端项目,但是因为这个项目是用layui写的,已经有点过时了,所以我弄个Vue前端项目的接口调整。上一个则只是简单跟着视频完......
  • 响应字符数据
        setContentType是为了防止乱码   文件的读取     ......