const vm = new Vue(options) option:({data:myDate}) options.data 会被Vue监听, 会被Vue实例代理, 每次对data的读写都会被Vue监控, Vue会在data变化时更新UI
//修改姓名 let obj = { 姓: "yang", 名: "kerry", age: 18, get 姓名() { return this.姓 + this.名; }, set 姓名(xxx) { //设置姓名为obj.姓名 this.姓 = xxx[0]; this.名 = xxx.substring(1); }}; obj3.姓名 = "诸葛亮"; console.log(`姓名:${obj.姓}${obj.名}`);
let data = {}; data.c = 0; Object.defineProperty(data, "n", { get() { return this.c; }, set(value) { if (value < 0) return; this.c = value; }}); console.log(data.n);//输出0 data.n=-1 console.log(data.n)//输出0,当n=-1<0data的属性n不变 data.n=1 console.log(data.n)//输出1
import Vue from "vue/dist/vue.js"; Vue.config.productionTip = false; new Vue({ data: { array: ["a", "b", "c"] }, template: ` <div> {{array}} <button @click="setD">set d</button> </div> `, methods: { setD() { Vue.set(this.array,3,‘d‘);//可以实现添加d元素 //this.array[3] = "d"; //请问,页面中会显示 ‘d‘ 吗?,不会显示 //this.array.push(‘d‘) 可以添加d元素 } }}).$mount("#app");
原文:https://www.cnblogs.com/yxks-666/p/14454493.html