真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

vue.js組件數(shù)據(jù)流的示例分析-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)vue.js組件數(shù)據(jù)流的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

創(chuàng)新互聯(lián)建站,為您提供網(wǎng)站建設(shè)公司成都網(wǎng)站制作、網(wǎng)站營銷推廣、網(wǎng)站開發(fā)設(shè)計(jì),對服務(wù)成都木包裝箱等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。創(chuàng)新互聯(lián)建站網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場的競爭激烈,認(rèn)真對待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!

一、組件

組件,可以說是現(xiàn)代前端框架中必不可少的組成部分。使用組件,不僅能極大地提高代碼的復(fù)用率和開發(fā)者的開發(fā)效率,對于代碼后期的維護(hù)也有著非常重要的意義。前端開發(fā),由于歷史遺留原因,WebComponent 雖然好用,但其發(fā)展情況卻受到極大地限制,和很多新興的前端技術(shù)一樣,可望而不可即。基于這樣的情況,聰明的開發(fā)者們嘗試通過框架內(nèi)部集成相應(yīng)的功能來完成組件化,各種現(xiàn)代前端框架基本上都有各自的實(shí)現(xiàn)。這里我們來分析一下 vue 的組件,重點(diǎn)關(guān)注數(shù)據(jù)的流向。

二、vue 組件

vue 的組件,創(chuàng)建模板的時(shí)候是基于普通的 html 的,不需要學(xué)習(xí) jsx、handlebars 等的特殊語法,所以相對來說,學(xué)習(xí)成本比較低,更容易上手。使用 vue 組件的時(shí)候,一般分為組件注冊和組件調(diào)用兩個(gè)部分。

(一)組件注冊

Vue.component('pop-box', {
  template:  '\
    \
    ..........
    
\   
',   props: [...],   data: function () {     return ...;   },   methods: {     ...   },   mounted () {     ...   },   ... });

利用 Vue.component 方法我們可以很輕松的創(chuàng)建一個(gè)全局可用的組件,當(dāng)然也可以在實(shí)例或組件內(nèi)部注冊局部組件,但原理大同小異。Vue.component 的第一個(gè)參數(shù)是組件的名字,或者說唯一標(biāo)識符(id),后續(xù)調(diào)用它將通過這個(gè)名字進(jìn)行調(diào)用;第二個(gè)參數(shù)是一個(gè)對象,通常它包含了模板(template)、組件內(nèi)維護(hù)的數(shù)據(jù)(data、computed)、方法(methods)、鉤子函數(shù)(created 、 mounted...)等關(guān)鍵信息。

值得注意的是:

  1. 組件內(nèi)的 data 必須是一個(gè)函數(shù),它的返回值將作為實(shí)際的 “data”;

  2. vue1.x 和 vue2.x 的鉤子函數(shù)略有不同,如果發(fā)現(xiàn)鉤子函數(shù)不生效,記得確認(rèn) vue 的版本。

(二)組件調(diào)用

(1)開始標(biāo)簽 + 結(jié)束標(biāo)簽?zāi)J?/p>

(2)無結(jié)束標(biāo)簽?zāi)J?/p>

調(diào)用 vue 組件有以上兩種模式。兩種模式上,如果沒有使用 slot 那么實(shí)際上并沒有任何區(qū)別,但如果需要使用 slot 的時(shí)候,便只能使用同時(shí)包含開始標(biāo)簽和結(jié)束標(biāo)簽的模式。

值得注意的是,上面綁定數(shù)據(jù)的時(shí)候,直接采用 property="value" 的形式,不管 value 是數(shù)字還是字符串,property 最終都是字符串類型。如果想讓其變成數(shù)字類型,請使用 v-bind:property="value" 的形式,或者簡寫為 :property="value" 。

三、vue 組件數(shù)據(jù)流

vue 遵循了典型的單向數(shù)據(jù)流的原則,即數(shù)據(jù)總是由父組件傳遞到子組件,子組件在其內(nèi)部可以有自己維護(hù)的數(shù)據(jù),但它無權(quán)修改父組件傳遞給它的數(shù)據(jù),當(dāng)開發(fā)者嘗試這樣做的時(shí)候,vue 將會報(bào)錯(cuò)。這樣做的好處是,防止多個(gè)子組件都嘗試修改父組件狀態(tài)時(shí),讓這一行為變得難以追溯。vue 中具體實(shí)現(xiàn)方式如下:

vue.js組件數(shù)據(jù)流的示例分析

父組件通過綁定 props 的方式,將數(shù)據(jù)傳遞給子組件,但是子組件自己并沒有權(quán)利修改這些數(shù)據(jù),如果要修改,只能把修改這一個(gè)行為通過 event 的方式報(bào)告給父組件,由父組件本身決定改如何處理數(shù)據(jù)。

(一)簡單實(shí)例


  
... Vue.component('my-counter', {   template:  '\     
{{counter}}
\     increase\   ',   props: ['counter'],   methods: {     inc: function () {       this.$emit('inc');     }   } }); var app = new Vue({   el: '#app',   data: {     counter: 0   },   methods: {     increase () {       this.counter ++;     }   } });

為了顯得更簡單這里只創(chuàng)建了一個(gè) my-counter 組件作為子組件,我們可以姑且將 vue 的實(shí)例認(rèn)為是一個(gè)父組件。

(二)分析數(shù)據(jù)流向分析

(1)我們在父組件中定義了一個(gè)數(shù)據(jù)叫 counter;
(2)調(diào)用組件的時(shí)候,通過 :counter="counter" 的方式,將父組件的 counter 以 prop 的方式傳遞到子組件中;
(3)子組件讀取到 counter,并將其展示在模板中;
(4)用戶點(diǎn)擊按鈕,counter 需要增加;
(5)子組件監(jiān)聽到這個(gè)事件,但它并不直接修改 counter,而是通過 this.$emit('inc'); 以自定義事件的形式,將需要增加的這一個(gè)事件報(bào)告給父組件;
(6)父組件中,由于通過執(zhí)行過 @inc="increase" ,能夠監(jiān)聽到子組件報(bào)告過來的事件,并在自己的 increase 方法中,實(shí)現(xiàn) counter 的增加;
(7)父組件里的數(shù)據(jù)更新了,子組件里的數(shù)據(jù)也將自動更新,同時(shí)也將更新界面內(nèi)容,這一過程由框架自動完成。

(三)總結(jié)

上面這一個(gè)示例,基本完整展示了 vue 主要的數(shù)據(jù)流向,但是這種基于 prop/evnet 的方式僅適用于存在直接的父子關(guān)系的組件,兄弟組件或者大量組件的數(shù)據(jù)流向如果再基于這種方式將會變得非常麻煩,這時(shí)可以考慮使用更加強(qiáng)大的狀態(tài)管理模式。

關(guān)于“vue.js組件數(shù)據(jù)流的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


本文題目:vue.js組件數(shù)據(jù)流的示例分析-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://weahome.cn/article/eeses.html

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部