首页 > 其他分享 >vue的响应式

vue的响应式

时间:2023-08-10 19:07:04浏览次数:33  
标签:vue console log person name 响应 propName target

let person = {
  name:'路飞',
  age:18
}

// let p = {}
// Object.defineProperty(p, "name", {
//   get(){      //有人读取name时调用
//     return person.name;
//   },
//   set(value){      //有人修改name时调用
//     console.log("有人修改了name属性")
//     person.name = value
//   }
// });
//
// Object.defineProperty(p, "age", {
//   get(){      //有人读取age时调用
//     return person.age;
//   },
//   set(value){      //有人修改age时调用
//     console.log("有人修改了age属性")
//     person.age = value
//   }
// });
// console.log(p.hello = '你好!')
// console.log(person)
const p = new Proxy(person, {        //创建代理
  // 查
  get(target,propName){
    console.log(`有人读取了p身上的${propName}`)
    return target[propName];
    //反射
    // return Reflect.get(target,propName)
  },
  // 改 增
  set(target, propName, value){
    console.log(`有人修改了p身上的${propName}属性`);
    target[propName] = value;
  },
  // 删
  deleteProperty(target, propName){
    console.log(`有人删除了p身上的${propName}属性`)
    return delete target[propName];
  },
});
p.sex = '男';
console.log('person------------------',person)

标签:vue,console,log,person,name,响应,propName,target
From: https://blog.51cto.com/u_15716707/7038449

相关文章

  • avue组件自定义按钮/标题/内容/搜索栏
    话不多说笔记直接分享!!一、自定义crud搜索栏组件<templateslot-scope="scope"slot="provinceCodeSearch"> <avue-select v-model="objFrom.provinceCode"//这是存放省份的code placeholder="请选择省市" :di......
  • VUE+ElementUI的表单验证二选一必填项,并且满足条件后清除表单验证提示
    上代码<el-form-itemlabel="出库单号"prop="ecode"ref="ecode":rules="rules.ecode"><el-inputv-model="queryParams.ecode"placeholder="出库单号和出库箱号至少填写一项"clearable......
  • 基于 Webpack4 和 Vue 的可热插拔式微前端架构
    如果项目对你有所帮助,可以给个star Github地址什么是PuzzlePuzzle是基于Vue和Webpack4实现的一种项目结构;业务模块可以像拼图一样与架构模块组合,形成不同的系统,而这一切都是可以在生产环境热插拔的;这意味着你可以随时向你的系统添加新的功能模块,甚至改版整个系统,而不需......
  • vue3怎么使用defineExpose
    在使用单文件组件<scriptsetup>创建一个子组件,会遇到父组件需要调用子组件的方法或变量的情况,这个时候,子组件中就需要使用defineExpose把子组件中那些需要被父组件调用的方法或变量给输出,方便父组件使用。 1.子组件在子组件中,定义updata方法、getData方法、num变量<templat......
  • 项目vue2升级vue3
    Vue2迁移vue3操作指南#一、前言有个自动化迁移工具gogocode-cli,尝试后发现不好用且得不偿失,就放弃了,感兴趣的可以去了解一下,本指南选择手动迁移迁移开始之前,我们先来梳理下思路:现在有一个vue2的项目,首先我们升级框架,得到了一个vue3的框架,但是上面放着vue2的代码,跑不起来,然后我......
  • 全局引用ant-design-vue的TreeSelect没有样式
    在全局只按需引用了TreeSelect---vue.use(TreeSelect)没有样式.........需要在babel.config.js里的plugins配置plugins:[["import",{"libraryName":"ant-design-vue",//库名称"libraryDirectory"......
  • vue自定义指令(防抖)
    importVuefrom'vue'/***按钮防抖,300毫秒内只触发一次请求*区分了一下传参和不传参的情况*///不传参数,用法:v-debounce="test_debounce"Vue.directive('debounce',{inserted:function(el,binding){lettimerel.addEventListener('click',......
  • npm uninstall -g @vue/cli 命令卸载脚手架失败
     解决方法如下:1、执行:npmconfigls-l命令;在展示信息的userconfig键值中找到.npmrc文件的路径;将.npmrc文件删除。查询结果如下: 2、执行:wherevue命令;删除查询出的两个文件。文件如下图: 3、执行:vue-V命令。发现vue命令已经不可用,说明已经删除成功。 ......
  • vue3源码入口
    vue有两个阶段  分为编译时和运行时webpack  把vue模板编译生成对应的js代码,vue组件组件对应的template模板会被编译器转化为render函数。 运行时编译后代码执行render函数并返回VNode,最后将VNode渲染成真实的DOM节点createApp>ensureRenderer>createRenderer>ba......
  • 精简的Vue Elenent ui界面
    仓库地址:https://gitee.com/JSTGitee/element-jst-admin 登录  首页   表格   前言该方案作为一套多功能的后台框架模板,适用于绝大部分的后台管理系统开发。基于Vue2,使用vue-cli2脚手架,引用Elementui组件库,方便开发快速简洁好看的组件。 功能......