vueデータ応答式原理知識点のまとめ
vue 2.0データ応答式の原理
オブジェクト
Obect.defineproperty定義対象の属性mjm
definepropertyはコアのオブジェクトのためにデータを双方向に結合するのではなく、オブジェクトに属性ラベルを作成し、一連の操作権限を設定します。属性の中のgetとsetだけが応答式を実現しました。
defineProperty定義のgetとsetは対象の属性ですが、配列はどうなりますか?
デコレーションモードを作りました。
Proxyオブジェクトは、基本的な動作を定義するために使用されるカスタム行為で、いくつかの動作のデフォルトの動作を修正することは、言語レベルでの修正に等しいので、「メタプログラミング」(meta programming)に属し、つまりプログラミング言語をプログラミングする。
definePropertyと似ています。機能はほぼ同じですが、使い方は違います。
Diffアルゴリズムとvirtua doml
//1-オブジェクト2-属性3-属性に関する一連の構成
以上は小编がみんなに整理したすべての関连している知识の点です。ありがとうございます。もし何か疑问があれば、私たち小编に连络してください。
オブジェクト
Obect.defineproperty定義対象の属性mjm
definepropertyはコアのオブジェクトのためにデータを双方向に結合するのではなく、オブジェクトに属性ラベルを作成し、一連の操作権限を設定します。属性の中のgetとsetだけが応答式を実現しました。
var ob = {
a: 1,
b: 2
}
//1- 2- 3-
Object.defineProperty(ob, 'a' , { //a ob ,, true
writable: false,
enumerable: false,
configurable: false
})
ob.a = 3
console.log(Object.getOwnPropertyDescriptor(ob, 'a'))
console.log(ob.a) //1
var ob = {
a: 1,
b: 2
}
//1- 2- 3-
/**
* vue
* ob a get/set , ob a , get , ob a , set
*/
Object.defineProperty(ob, 'a' , { //a ob ,, true
get: function(){
console.log('a- get')
},
set: function(){
console.log('a- set')
}
})
ob.a = 3
console.log(ob.a)
// ,,, ,
var ob = {
a: 1,
b: 2
}
//1- 2- 3-
/**
* vue
* ob a get/set , ob a , get , ob a , set
*/
var _value = ob.a //_value
Object.defineProperty(ob, 'a' , { //a ob ,, true
get: function(){
console.log('a- get')
return _value;
},
set: function(newValue){
console.log('a- set')
_value = newValue;
}
})
ob.a = 3
console.log(ob.a) //get return , undefined
defineProperty定義のgetとsetは対象の属性ですが、配列はどうなりますか?
デコレーションモードを作りました。
/**
* Object.create() 。
* , 。
* Object.create(proto, [ propertiesObject ])
*/
// --
var arraypro = Array.prototype;
var arrob = Object.create(arraypro)
var arr = ['push', 'pop', 'shift']; // ,vue
arr.forEach((method, index)=>{
arrob[method] = function(){
var ret = arraypro[method].apply(this,arguments);
dep.notify();
}
})
vue 3.0データ応答式の原理-ProxyProxyオブジェクトは、基本的な動作を定義するために使用されるカスタム行為で、いくつかの動作のデフォルトの動作を修正することは、言語レベルでの修正に等しいので、「メタプログラミング」(meta programming)に属し、つまりプログラミング言語をプログラミングする。
definePropertyと似ています。機能はほぼ同じですが、使い方は違います。
Procy?
1、defineProperty ,
2、 for in
3、 ,
observer:
vue.prototype.observer = function(obj){ // get/set
var self = this;
this.$data = new Proxy(this.$data, {
get: function(target, key, receiver){
return target[key]
},
set: function(target, key, value, receiver){
// return Reflect.set(target, key, value);
// return target[key] = value
target[key] = value;
self.render();
}
})
}
Proxy用途--検証タイプ--本当のプライベート変数Diffアルゴリズムとvirtua doml
//1-オブジェクト2-属性3-属性に関する一連の構成
以上は小编がみんなに整理したすべての関连している知识の点です。ありがとうございます。もし何か疑问があれば、私たち小编に连络してください。