Vue 精華一頁(yè)紙

Vue.js 和 angular.js一樣也是一個(gè)客戶端框架茁瘦,利用H5自定義標(biāo)簽的能力忧勿,把數(shù)據(jù)和控制通過(guò)js實(shí)現(xiàn)分離的功能

沖擊比較大的就是 freemarker补胚,jsp這些服務(wù)端模板技術(shù)蒂教,利用客戶端框架+Ajax肾扰、實(shí)現(xiàn)客戶端層面的 MVC点楼,MVP,MVMM這些模式白对。html和js掠廓,雙向綁定。自此甩恼,服務(wù)端可以不用再關(guān)心頁(yè)面內(nèi)容分發(fā)這些蟀瞧,只需要提供服務(wù)接口,比如Rest

1条摸、典型用法

入門的 vue例子

包含元素

I悦污、id 屬性標(biāo)注一個(gè) app 名稱 -- 對(duì)應(yīng)的 angular 對(duì)象就是ng-app/ng-controller???

II、定義一個(gè) Vue 對(duì)象钉蒲,其中 el屬性 對(duì)應(yīng)到 前面的id屬性 (背后的邏輯就是 document.getElementById())-- 對(duì)應(yīng)angular 就是 define???

III切端、Vue 中的數(shù)據(jù)存儲(chǔ)在 data屬性中

IV、使用數(shù)據(jù)對(duì)象{{}} -- 這點(diǎn)和angular 是一致性的

V顷啼、對(duì)于 Vue data中的對(duì)象踏枣,Vue都直接代理 即 var v = new Vue 后 v.message 可以直接引用

Vue對(duì)象中的其他實(shí)例方法 v.$watch('obj',function(old,new){}); 監(jiān)控屬性值變化

2、概念

對(duì)應(yīng)每一個(gè)模版框架钙蒙,基礎(chǔ)部分都需要了解: 表達(dá)式茵瀑;邏輯控制。掌握了這兩部分躬厌,就可以切入這個(gè)模型马昨,后續(xù)高級(jí)部分在使用中學(xué)習(xí)。

更重要的是扛施,幾乎所有的模版框架這部分內(nèi)容都有相似之處鸿捧,掌握一個(gè)就可以掌握大部分的使用

I、表達(dá)式

-- js的表達(dá)式全部支持

II疙渣、邏輯控制指令

a匙奴、判斷邏輯 v-if 指令

通過(guò)在 屬性中 增加 v-if 屬性,如果里面的表達(dá)式計(jì)算結(jié)果為真昌阿,則該 元素會(huì)插入到最后的頁(yè)面中

b饥脑、循環(huán)邏輯 v-for 指令

采用在屬性中 增加 v-for 屬性恳邀,屬性里面迭代語(yǔ)法 item in items 和js的迭代語(yǔ)法類似

3、綁定

綁定是實(shí)現(xiàn)MVMM/MVP一個(gè)核心因素灶轰,通過(guò)修改 數(shù)據(jù)model部分的數(shù)據(jù)谣沸,可以實(shí)時(shí)聯(lián)動(dòng)改變 html中的數(shù)據(jù),從而系統(tǒng)實(shí)現(xiàn)了控制笋颤,無(wú)需再專門做Controller的開(kāi)發(fā)乳附,減少了開(kāi)發(fā)成本

I、數(shù)據(jù)綁定 v-model指令

-- 這點(diǎn)和 angular 的 ng-model 是一樣的

綁定的變量 class1伴澄,在界面和數(shù)據(jù)js中雙向綁定赋除,一般用在表單元素比較多

II、屬性綁定 v-bind指令

-- 這個(gè)和 angular的 ng-bind 也是一致的非凌,v-bind: 可以縮寫成 :

new Vue({

el: '#app',

data:{

class1: false,

class2: true

}

});

一種是簡(jiǎn)單的綁定表達(dá)式的值举农;

一種是綁定對(duì)象和數(shù)組(主要針對(duì) class和style 屬性)

{class1:true, class2:true} - 這點(diǎn)類似于angular

[class1,class2]

除此之外,還可以使用 computed 返回值敞嗡,只要返回值是符合如上格式的對(duì)象

4颁糟、邏輯-事件-控制

v-if/v-for 只是對(duì)界面內(nèi)容的簡(jiǎn)單控制,web開(kāi)發(fā)有很大一部分是事情相應(yīng)控制喉悴,Vue模版使用什么來(lái)代替js的onclick 這些事件處理呢

I棱貌、v-on 指令 + Vue 方法

v-on 指令對(duì)常用的 html事件都可以操作,一般相應(yīng)的函數(shù)都放在 methods中, v-on: 可以縮寫成 @

v:on 對(duì)應(yīng)js所有的 鼠標(biāo)和鍵盤事件

II箕肃、其他Vue方法

a婚脱、過(guò)濾器 |

對(duì)應(yīng) angular ,可以實(shí)現(xiàn)類似 管道的過(guò)濾功能勺像,前一個(gè)處理結(jié)果障贸,作為第一個(gè)參數(shù)傳給后一個(gè)過(guò)濾器函數(shù),對(duì)于過(guò)濾器必須使用 filters 來(lái)標(biāo)注函數(shù)咏删。

b喳篇、計(jì)算屬性?computed

和普通methods的區(qū)別是羹铅,直接使用 名稱就可以惭每,而methods需要 () 才能作為方法執(zhí)行柠并;此外享怀,computed 的記錄會(huì)緩存,直到依賴的數(shù)據(jù)發(fā)生變化命爬,而methods每次調(diào)用都重新執(zhí)行

5番刊、表單元素

主要通過(guò)v-model綁定表單控件的值

比如 復(fù)選框

6菊匿、組件化

任何框架最終的殺傷力都是能夠模塊化垄分,組件化宛篇,這是非常精華重要的部分,Vue也不例外薄湿,下面看Vue如何抽象封裝成新的框架和組件

組件化叫倍,一般包含幾個(gè)部分:a偷卧、H5界面上,使用的自定義標(biāo)簽和屬性吆倦;b听诸、js模版中,提供標(biāo)簽和屬性的 html模版替換

I蚕泽、組件化的一個(gè)例子

    II晌梨、組件化的步驟

    一、注冊(cè)一個(gè)組件

    a须妻、全局組件 Vue.component

    b仔蝌、局部組件 在 new Vue 中 的 components 屬性

    new Vue({

    components: {

    'runoob': {template: '< ?> 自定義組件 <>''}

    }

    })

    二、使用 template 進(jìn)行替換 標(biāo)簽元素

    三荒吏、父控件(外層) 傳遞數(shù)據(jù)給 子控件(內(nèi)層)敛惊,通過(guò) props 傳遞數(shù)據(jù)

    如果傳遞的是靜態(tài)數(shù)據(jù)比如字符串 直接使用 todo屬性,比如 todo="aaa";如果是動(dòng)態(tài)數(shù)據(jù)绰更,綁定的其他數(shù)據(jù)使用 v-bind:todo 綁定一個(gè)變量

    四瞧挤、子控件(內(nèi)層) 傳遞數(shù)據(jù)給父控件(外層),通過(guò)事件來(lái)傳遞

    使用 $on(eventName) 監(jiān)聽(tīng)事件

    使用 $emit(eventName) 觸發(fā)事件

    7、自定義指令

    Vue和AugularJS一樣动知,也有自定義指令皿伺,不過(guò)功能卻不一樣,angularJS的自定義指令對(duì)應(yīng)的是Vue的component 組件功能盒粮,通過(guò)自定義指令這樣可以實(shí)現(xiàn)更多的組合功能鸵鸥,比如可以在指令中定義自己的事件處理體系

    和組件一樣,也有全局和局部指令

    Vue.directive('focus', {});

    directives: {focus:{});

    I丹皱、注冊(cè)一個(gè)指令 directive

    II妒穴、鉤子(回調(diào))函數(shù) bind/inserted/update/componentUpdated/unbind

    函數(shù)入?yún)?/p>

    el -- 指令綁定的元素

    binding -- 獲取綁定的指令的信息

    vnode -- vue編譯后的節(jié)點(diǎn)

    使用鉤子函數(shù)用在何時(shí)實(shí)現(xiàn)指令的功能,如果不指定則所有時(shí)候都生效

    III摊崭、通過(guò)函數(shù)獲取的 el,bingding 對(duì)象實(shí)現(xiàn)相應(yīng)的操作

    8讼油、其他重點(diǎn)知識(shí)

    其他常見(jiàn)指令

    v-show 指令

    -- 對(duì)比 angular 的ng-show

    實(shí)現(xiàn)的效果和 v-if 類似,但背后的邏輯不通呢簸,v-if 是控制是否插入該元素矮台,而v-show 是肯定插入該元素,通過(guò) display:none 樣式控制顯示


    最后編輯于
    ?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
    • 序言:七十年代末根时,一起剝皮案震驚了整個(gè)濱河市瘦赫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蛤迎,老刑警劉巖确虱,帶你破解...
      沈念sama閱讀 217,084評(píng)論 6 503
    • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異替裆,居然都是意外死亡校辩,警方通過(guò)查閱死者的電腦和手機(jī)窘问,發(fā)現(xiàn)死者居然都...
      沈念sama閱讀 92,623評(píng)論 3 392
    • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宜咒,“玉大人惠赫,你說(shuō)我怎么就攤上這事∮牛” “怎么了汉形?”我有些...
      開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
    • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)倍阐。 經(jīng)常有香客問(wèn)我概疆,道長(zhǎng),這世上最難降的妖魔是什么峰搪? 我笑而不...
      開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
    • 正文 為了忘掉前任岔冀,我火速辦了婚禮,結(jié)果婚禮上概耻,老公的妹妹穿的比我還像新娘使套。我一直安慰自己,他們只是感情好鞠柄,可當(dāng)我...
      茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
    • 文/花漫 我一把揭開(kāi)白布侦高。 她就那樣靜靜地躺著,像睡著了一般厌杜。 火紅的嫁衣襯著肌膚如雪奉呛。 梳的紋絲不亂的頭發(fā)上,一...
      開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
    • 那天夯尽,我揣著相機(jī)與錄音瞧壮,去河邊找鬼。 笑死匙握,一個(gè)胖子當(dāng)著我的面吹牛咆槽,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播圈纺,決...
      沈念sama閱讀 40,126評(píng)論 3 418
    • 文/蒼蘭香墨 我猛地睜開(kāi)眼秦忿,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蛾娶?” 一聲冷哼從身側(cè)響起小渊,我...
      開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
    • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茫叭,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體半等,經(jīng)...
      沈念sama閱讀 45,414評(píng)論 1 313
    • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揍愁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
      茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
    • 正文 我和宋清朗相戀三年呐萨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莽囤。...
      茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
    • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡谬擦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出朽缎,到底是詐尸還是另有隱情惨远,我是刑警寧澤,帶...
      沈念sama閱讀 35,470評(píng)論 5 344
    • 正文 年R本政府宣布话肖,位于F島的核電站北秽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏最筒。R本人自食惡果不足惜贺氓,卻給世界環(huán)境...
      茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
    • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望床蜘。 院中可真熱鬧辙培,春花似錦、人聲如沸邢锯。這莊子的主人今日做“春日...
      開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
    • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)丹擎。三九已至尾抑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鸥鹉,已是汗流浹背蛮穿。 一陣腳步聲響...
      開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
    • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留毁渗,地道東北人践磅。 一個(gè)月前我還...
      沈念sama閱讀 47,865評(píng)論 2 370
    • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像灸异,于是被迫代替她去往敵國(guó)和親府适。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
      茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

    推薦閱讀更多精彩內(nèi)容