最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Angular和Vue雙向數(shù)據(jù)綁定的實現(xiàn)原理(重點是vue的雙向綁定)

 更新時間:2016年11月22日 14:09:35   作者:核桃大號  
這篇文章主要介紹了Angular和Vue雙向數(shù)據(jù)綁定的實現(xiàn)原理(重點是vue的雙向綁定),非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧

我在整理javascript高級程序設計的筆記的時候看到面向對象設計那章,講到對象屬性分為數(shù)據(jù)屬性和訪問器屬性,我們平時用的js對象90%以上都只是用到數(shù)據(jù)屬性;我們向來講解下數(shù)據(jù)屬性和訪問器屬性到底是什么?

數(shù)據(jù)屬性:數(shù)據(jù)屬性包含一個數(shù)據(jù)值的位置,在這個位置可以讀取和寫入值.

訪問器屬性:訪問器屬性不包含數(shù)據(jù)值;他們包含一對getter和setter函數(shù)在讀取訪問器屬性時,會調用getter函數(shù),這個函數(shù)負責返回有效的值,在寫入訪問器屬性時,會調用setter函數(shù)并傳入新值.

這里介紹的重點是訪問器屬性,設置對象的訪問器屬性只能用es5的Object.defineProrerty()方法,如下例子:

var book={
_year:2004,
edition:1
};
Object.defineProperty(book,"year",{
get:function () {
return this._year
},
set:function (newValue) {
if(newValue>2004){
this._year=newValue;
this.edition+=newValue-2004;
}
}
});
book.year=2005;
alert(book.edition);//2
console.log(book.year);//2005

也就是當執(zhí)行book.year=2005的時候其實是執(zhí)行了year中的set方法,當執(zhí)行book.year的時候執(zhí)行了year的get方法;

var book={
_year:2004,
edition:1
};
Object.defineProperty(book,"year",{
get:function () {
console.log("year get")
return this._year
},
set:function (newValue) {
console.log("year set")
if(newValue>2004){
this._year=newValue;
this.edition+=newValue-2004;
}
}
});
book.year=2005;
alert(book.year);

控制臺的提示是:

這個原理就是vue雙向數(shù)據(jù)綁定的原理,我們在vue組件中的data聲明屬性數(shù)據(jù)的時候其實在對象中的已經將這個屬性封裝成了訪問器屬性.

每個屬性都有get和set方法,在做雙向的數(shù)據(jù)的控制都在get和set方法中,因為無論你是在ready(2.0是mounted了)或是在view中改變值都會觸發(fā)set方法,將新值復制進去,在重新在view中匹配值,當然你們有更復雜的控制操作,get方法著是讓ready中獲取的這個屬性值一直保存最新值.

angular1的雙向數(shù)據(jù)綁定是臟數(shù)據(jù)監(jiān)測,簡單點說就是監(jiān)測新值和舊值有沒有變化,這種方式就要定時監(jiān)測了咯.兩種性能的消耗感覺不在一個層次上的啊.

就好比用html5 Sockets做后臺主動消息推送前端和用js定時器每個5秒發(fā)送請求到后臺捕獲消息的性能差距一樣.

還有之前寫的js面向對象分層的思想其實也可以用在vue項目中,以前我一直以為vue的data層其實就是個擺設,但在api發(fā)現(xiàn)computed屬性之后data層完全可以實現(xiàn)發(fā)送ajax取數(shù)功能,沒必要在全都放到ready(2.0是mounted了)里面,這個ready(2.0是mounted了)可以只負責數(shù)據(jù)格式出來,或者控制頁面的動態(tài)效果而已.這js的結構就像后臺MVC那樣層次功能分明清晰.這也只是我突然想到的思路還沒真正應用到實際項目中,只是給在用vue的朋友提供個思路.

import data from '../assets/js/data'
export default{
data(){
return{
menu:data.menu,
inde:"",
row:"",
clomu:""
}
},
computed:{
isfull:function () {
alert(111);
return 11;
}
},
mounted(){
},
methods:{
domclick:function (i) {
if(this.inde===i){
this.inde="";
}else {
this.inde = i;
}
},
subclick:function (i,o) {
this.row=i;
this.clomu=o;
}
}
}

以上所述是小編給大家介紹的Angular和Vue雙向數(shù)據(jù)綁定的實現(xiàn)原理(重點是vue的雙向綁定),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • vue模版編譯詳情

    vue模版編譯詳情

    本文的初衷是想讓更多哎學習的人知道并了解vue模版編譯,所以文中主要以階段流程為主,不會涉及過多的底層代碼邏輯,需要的朋友可以參考一下
    2021-09-09
  • vue實現(xiàn)點擊當前標簽高亮效果【推薦】

    vue實現(xiàn)點擊當前標簽高亮效果【推薦】

    這篇文章主要介紹了vue實現(xiàn)點擊當前標簽高亮效果的思路詳解,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-06-06
  • VUE更換背景顏色的方法

    VUE更換背景顏色的方法

    這篇文章主要介紹了VUE更換背景顏色的方法,?在這個示例中,我們使用了一個backgroundColor變量來存儲當前頁面的背景顏色,當用戶點擊按鈕時,我們通過調用setBackgroundColor方法來更改背景顏色,并將背景顏色同時應用于body元素,需要的朋友可以參考下
    2024-03-03
  • vue + element-ui的分頁問題實現(xiàn)

    vue + element-ui的分頁問題實現(xiàn)

    這篇文章主要介紹了vue + element-ui的分頁問題實現(xiàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • vue動態(tài)綁定圖標的完整步驟

    vue動態(tài)綁定圖標的完整步驟

    動態(tài)綁定是我們日常開發(fā)中經常遇到的一個需求,下面這篇文章主要給大家介紹了關于vue動態(tài)綁定圖標的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-05-05
  • vue 簡單自動補全的輸入框的示例

    vue 簡單自動補全的輸入框的示例

    這篇文章主要介紹了vue 簡單自動補全的輸入框的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 解決創(chuàng)建vue項目后沒有vue.config.js文件的問題

    解決創(chuàng)建vue項目后沒有vue.config.js文件的問題

    這篇文章給大家主要介紹如何解決創(chuàng)建vue項目后沒有webpack.config.js(vue.config.js)文件,文中有詳細的解決方法,感興趣的朋友可以參考閱讀下
    2023-07-07
  • vue3結合ts從零實現(xiàn)vueuse的useRouteQuery方法

    vue3結合ts從零實現(xiàn)vueuse的useRouteQuery方法

    這篇文章主要為大家詳細介紹了如何使用vue3與ts從零實現(xiàn)一個類vueuse的useRouteQuery方法,并解決vueuse的useRouteQuery方法存在的一些問題,感興趣的可以了解下
    2024-03-03
  • 如何修改element-ui日期下拉框datetimePicker的背景色樣式

    如何修改element-ui日期下拉框datetimePicker的背景色樣式

    這篇文章主要介紹了修改element-ui日期下拉框datetimePicker的背景色樣式的操作代碼,本文給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Element el-table的formatter和scope?template不能同時存在問題解決辦法

    Element el-table的formatter和scope?template不能同時存在問題解決辦法

    本文主要介紹了ElementUI?el-table?的?formatter?和?scope?template?不能同時存在問題解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08

最新評論

东丽区| 尉犁县| 南开区| 资中县| 堆龙德庆县| 石城县| 玉龙| 沧州市| 东方市| 剑阁县| 南漳县| 延津县| 合水县| 年辖:市辖区| 锡林浩特市| 罗定市| 博乐市| 乐昌市| 内黄县| 新宁县| 腾冲县| 岚皋县| 开原市| 徐州市| 莆田市| 牙克石市| 邛崃市| 景德镇市| 搜索| 鄂托克前旗| 揭东县| 大英县| 肥东县| 宁都县| 房山区| 广南县| 宜州市| 当涂县| 南木林县| 许昌市| 三都|