vue2 x 是怎麼讓普通物件變為 響應式物件的呢

2021-10-24 05:51:40 字數 1028 閱讀 7043

function

initdata

(vm);if

(!isplainobject

(data));

process.env.

node_env

!=='production'

&&warn

('data functions should return an object:\n'

+'', vm

);}// proxy data on instance

var keys = object.

keys

(data)

;var props = vm.$options.props;

var methods = vm.$options.methods;

var i = keys.length;

while

(i--)}

if(props &&

hasown

(props, key)

)elseif(

!isreserved

(key))}

// observe data

observe

(data,

true

/* asrootdata */);

}

它會執行兩步

會把option.data的資料 proxy到例項當中,proxy實際上是對object.defindproperty的封裝,這就解釋 了this.name為什麼能獲取option.data的屬性

然後把data變成響應式物件(當然,如果child也是物件,則會深層遍歷為 響應式物件)

observe -》observer-》this.walk(value)-》definereactive

然後再給所有 屬性 新增definereactive setter/getter

最後 的返回的物件為

,ob

}用 __ob__來標識 是否為響應式物件

vue2 x知識總結

data data data data 逆轉訊息 data methods data 現在我們為每個 todo item 提供 todo 物件 todo 物件是變數,即其內容可以是動態的。我們也需要為每個元件提供乙個 key 稍後再 作詳細解釋。vue.component todo item dat...

在vue2 x專案中怎麼引入Element UI

參考 element使用方法 第一步 cmd進入專案目錄下,安裝 elementui 並儲存到 package.json npm install element ui s npm install element ui s有2個錯誤 解決方法 npm install 如圖 再執行一次npm insta...

vue2 x 許可權管理實現

由於工作的需求,前後端分離,需要對頁面中的資源許可權控制,到按鈕級別。開發步驟 1 制定 資源的命名規則 系統名 模組名 頁面名 功能名 2 收集各個頁面所有需要管控按鈕的資源,用乙個excel來整理 退出編輯備註 a.v privilege 表示是使用的指令 b.privilegeid 表示資源的...