vue之響應式屬性和資料雙向繫結

2021-10-24 07:22:38 字數 2445 閱讀 2971

v-model的原理:

特別說明:

1. 傳統方式新增的屬性,所有屬性特性預設為true

2. 通過object.defineproperty()新增的屬性,所有屬性特性預設為false

* 引數:引數1:目標物件 引數2:目標物件的屬性 引數3:對屬性的修飾(可寫啊,還是設定為不可列舉等!)

//1:值屬性

let xzl =

//傳統方式修改值屬性

xzl.pwd =

456// => 這裡面的屬性都是可寫的!

//通過object.defineproperty()方法修改值屬性

//需求:設定pwd為不可寫!

object.

defineproperty

(xzl,

"pwd",}

)//需求:設定pwd不可列舉性

object.

defineproperty

(xzl,

"pwd",)

for(

let key in xzl)

//使用普通的方式和 object.defineproperty() 給當前物件新增屬性的區別

//普通方式

xzl.age =

111// => 通過普通方式新增的屬性 都是可遍歷的,可寫的 也就是說值屬性是為trye

//使用 object.defineproperty()

object.

defineproperty

(xzl,

"gender",}

)for

(let key in xzl)

"box"

>

<

/div>

//2:儲存器屬性

// + 原理:就是在乙個物件內部有著get 和 set 方法

// * get 屬性()方法 =>這是獲取到當前的屬性, set 屬性()方法 => 設定新的屬性

//注意點:儲存器屬性作用**,也是就說使用當前的xll作為**,然後修改ll的性別

const xll =

,set

age(newval)

}const ll =

object.

defineproperty

(xll,

"gender",,

set(newval)})

//輸入:xll.gender="女" get00 "女"

//然後在輸入: ll =>

//3:響應式原理

// 響應式屬性的原理:把值屬性變成儲存器屬性(getter&setter)

const user =

//通過**user這個物件 來實現資料的修改!

const xjj =

box.innertext = user.uname;

for(

let key in user)

,set

(newval)})

}

vue例項中的響應式資料的原理
const initdate =

}const vm =

newvue()

這邊的100不是儲存器屬性 直接在頁面顯示的 ,並非像儲存器屬性一樣,最先是隱藏的!

//因此需要使用vue.set()方式 去設定,才能為後新增的屬性設定為儲存器屬性!

//引數:引數1:目標物件 引數2:目標物件的屬性值 引數3:目標物件的屬性值

vue.

set(vm.score,

"chinese"

,100);

// vue.set(vm, "chinese", 100);

//注意點:就是這個目標物件 不能設定為vm例項物件 ,也不能設定為initdate物件

//也不能設定給當前的initdate物件的chinese設定為100 也不能 `vue.set(vm, "chinese", 100);` 否則都會報錯:

//只能設定為: vue.set(vm.score, "chinese", 100);

>

>

姓名:}p

>

>

年齡:}p

>

type

="text"

v-bind:value

="age"

v-on:input

="changeage"

>

div>

src=

"../vue.js"

>

script

>

>

let data =

const vm = new vue(

}})

Vue 響應式屬性

本文參考自 1 概述 當建立乙個vue例項時,每個資料屬性 元件屬性等都是可以遍歷的,並為每個資料屬性新增了getter和setter。getter和setter允許vue觀察資料的更改並觸發更新。如果你在vue例項化後新增 或刪除 乙個屬性 例如在方法或生命週期鉤子中 vue是不知道它的。2 更新...

手寫vue 之資料響應式

將檢視view的狀態和行為抽象化,讓我們將檢視 ui 和業務邏輯分開。mvvm框架的三要素 資料響應式 模板引擎及其渲染 傳入物件obj,給他定義乙個屬性key,初始值為val 該屬性未來的訪問會被攔截,這樣就實現了響應式 function definereactive obj,key,val se...

Vue 資料響應式

css響應式不用說大家都知道,拖動瀏覽器視窗大小時,內容布局和大小會自動變化。那麼vue的資料響應式就是,例項中,通過修改vm的.n值,就能改變data 中的n。let vm vue vue2中,資料響應式是通過object.defineproperty實現的。如果開發者給乙個data中不存在的變數...