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

輕松理解vue的雙向數(shù)據(jù)綁定問(wèn)題

 更新時(shí)間:2017年10月30日 09:58:15   作者:文宗  
Vue是當(dāng)前很火的一款MVVM的輕量級(jí)框架,它是以數(shù)據(jù)驅(qū)動(dòng)和組件化的思想構(gòu)建的。因?yàn)樗峁┝撕?jiǎn)潔易于理解的api,使得我們很容易上手。這篇文章給大家介紹了vue雙向數(shù)據(jù)綁定問(wèn)題,感興趣的朋友一起看看吧

Vue介紹

Vue是當(dāng)前很火的一款MVVM的輕量級(jí)框架,它是以數(shù)據(jù)驅(qū)動(dòng)和組件化的思想構(gòu)建的。因?yàn)樗峁┝撕?jiǎn)潔易于理解的api,使得我們很容易上手。

Vue與MVVM

如果你之前已經(jīng)習(xí)慣了用jQuery操作DOM,學(xué)習(xí)Vue.js時(shí)請(qǐng)先拋開(kāi)手動(dòng)操作DOM的思維,因?yàn)閂ue.js是數(shù)據(jù)驅(qū)動(dòng)的,你無(wú)需手動(dòng)操作DOM。Vue以數(shù)據(jù)為驅(qū)動(dòng),將自身的Dom元素與數(shù)據(jù)進(jìn)行綁定,一旦創(chuàng)建綁定,Dom和數(shù)據(jù)保持同步。

雙向綁定

主流雙向數(shù)據(jù)綁定實(shí)現(xiàn)原理

臟值檢測(cè) : 這是AngularJS實(shí)現(xiàn)雙向數(shù)據(jù)綁定的方式。 原理是 當(dāng)數(shù)據(jù)進(jìn)行變更的時(shí)候?qū)λ蠱odel和View的綁定關(guān)系進(jìn)行一次檢查,識(shí)別是否有數(shù)據(jù)進(jìn)行了變更,如果有變化則進(jìn)行處理,由于可能進(jìn)一步引發(fā)其他數(shù)據(jù)的改變,會(huì)再次循環(huán)這個(gè)過(guò)程,知道沒(méi)有數(shù)據(jù)的變化之后。發(fā)送數(shù)據(jù)到視圖重新渲染。 可想而知,這樣的方式性能不高。

單向數(shù)據(jù)綁定

指的是我們先把模板寫(xiě)好,然后把模板和數(shù)據(jù)(數(shù)據(jù)可能來(lái)自后臺(tái))整合到一起形成HTML代碼,然后把這段HTML代碼插入到文檔流里面。
單向數(shù)據(jù)綁定缺點(diǎn):HTML代碼一旦生成完以后,就沒(méi)有辦法再變了,如果有新的數(shù)據(jù)來(lái)了,那就必須把之前的HTML代碼去掉,再重新把新的數(shù)據(jù)和模板一起整合后插入到文檔流中。 簡(jiǎn)單的來(lái)說(shuō)就是DOM操作直接改變

數(shù)據(jù)數(shù)據(jù)雙向

數(shù)據(jù)模型(Module)和視圖(View)之間的雙向綁定。

用戶(hù)在視圖上的修改會(huì)自動(dòng)同步到數(shù)據(jù)模型中去,同樣的,如果數(shù)據(jù)模型中的值發(fā)生了變化,也會(huì)立刻同步到視圖中去。雙向數(shù)據(jù)綁定的優(yōu)點(diǎn)是無(wú)需進(jìn)行和單向數(shù)據(jù)綁定的那CRUD(Create,Retrieve,Update,Delete)操作雙向數(shù)據(jù)綁定最經(jīng)常的應(yīng)用場(chǎng)景就是表單了,這樣當(dāng)用戶(hù)在前端頁(yè)面完成輸入后,不用任何操作,我們就已經(jīng)拿到了用戶(hù)的數(shù)據(jù)存放到數(shù)據(jù)模型中了。

如何使用js達(dá)到雙向數(shù)據(jù)綁定

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<input type="text" id="userName">
<br>
<span id ="uName"></span>
<script>
  var obj={
    pwd:"1234"
  };
  //主要使用到了get和set方法,最為關(guān)鍵
  Object.defineProperty(obj,"userName",{
    get:function(){
      console.log('get init');
    },
    set:function(val){
      console.log("set init");
      document.getElementById("uName").innerText=val;
      document.getElementById("userNmae").value=val;
    }
  });
  document.getElementById("userName").addEventListener("keyup",function(event){
    obj.userName=event.target.value;
  }
  )
</script>
</body>
</html>

運(yùn)行上述的dome,可以使用控制臺(tái),obj.username=123賦值,會(huì)自動(dòng)觸發(fā)set方法。若我們?cè)诳刂婆_(tái)使用obj.username拿值可以觸發(fā)get方法,這也就是vue的雙向數(shù)據(jù)綁定的核心點(diǎn)。

總結(jié)

以上所述是小編給大家介紹的輕松理解vue的數(shù)據(jù)雙向綁定問(wèn)題,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • tdesign vue初始化組件源碼解析

    tdesign vue初始化組件源碼解析

    這篇文章主要為大家介紹了tdesign vue初始化組件源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Nuxt.js nuxt-link與router-link的區(qū)別說(shuō)明

    Nuxt.js nuxt-link與router-link的區(qū)別說(shuō)明

    這篇文章主要介紹了Nuxt.js nuxt-link與router-link的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • vue實(shí)現(xiàn)自定義樹(shù)形組件的示例代碼

    vue實(shí)現(xiàn)自定義樹(shù)形組件的示例代碼

    這篇文章主要介紹了vue實(shí)現(xiàn)自定義樹(shù)形組件的示例代碼,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • 解決VUEX兼容IE上的報(bào)錯(cuò)問(wèn)題

    解決VUEX兼容IE上的報(bào)錯(cuò)問(wèn)題

    下面小編就為大家分享一篇解決VUEX兼容IE上的報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 基于vue.js輪播組件vue-awesome-swiper實(shí)現(xiàn)輪播圖

    基于vue.js輪播組件vue-awesome-swiper實(shí)現(xiàn)輪播圖

    一般做移動(dòng)端輪播圖的時(shí)候,最常用的就是Swiper插件了,而vue.js也有一個(gè)輪播組件vue-awesome-swiper,用法跟swiper相似。接下來(lái)通過(guò)本文給大家詳解講解vue.js輪播組件vue-awesome-swiper實(shí)現(xiàn)輪播圖實(shí)例代碼,需要的朋友參考下
    2017-03-03
  • 解決vue-pdf查看pdf文件及打印亂碼的問(wèn)題

    解決vue-pdf查看pdf文件及打印亂碼的問(wèn)題

    這篇文章主要介紹了解決vue-pdf查看pdf文件及打印亂碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • VueJs中的shallowRef與shallowReactive函數(shù)使用比較

    VueJs中的shallowRef與shallowReactive函數(shù)使用比較

    這篇文章主要為大家介紹了VueJs中的shallowRef與shallowReactive函數(shù)的使用比較解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • vue watch內(nèi)部調(diào)用methods方法報(bào)錯(cuò)的解決方案

    vue watch內(nèi)部調(diào)用methods方法報(bào)錯(cuò)的解決方案

    這篇文章主要介紹了vue watch內(nèi)部調(diào)用methods方法報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue+element-ui監(jiān)聽(tīng)滾動(dòng)實(shí)現(xiàn)錨點(diǎn)定位方式(雙向),錨點(diǎn)問(wèn)題

    vue+element-ui監(jiān)聽(tīng)滾動(dòng)實(shí)現(xiàn)錨點(diǎn)定位方式(雙向),錨點(diǎn)問(wèn)題

    這篇文章主要介紹了vue+element-ui監(jiān)聽(tīng)滾動(dòng)實(shí)現(xiàn)錨點(diǎn)定位方式(雙向),錨點(diǎn)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • vue element el-transfer增加拖拽功能

    vue element el-transfer增加拖拽功能

    這篇文章主要介紹了vue element el-transfer增加拖拽功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論

延长县| 拜泉县| 龙海市| 阜新市| 泸州市| 察雅县| 张家口市| 应城市| 崇阳县| 泰安市| 田林县| 宜章县| 东莞市| 蓬安县| 墨脱县| 遂宁市| 沂南县| 龙江县| 额尔古纳市| 溧阳市| 营山县| 阜阳市| 微博| 绥德县| 泸西县| 保山市| 聊城市| 喀喇| 贵定县| 宁津县| 达州市| 商城县| 依安县| 忻城县| 伊宁市| 鄂伦春自治旗| 安新县| 江永县| 灵山县| 贡嘎县| 察雅县|