我的Vue之旅——Vue初探

寫在前面

? ? ? 知道Vue已經(jīng)有“一段”時(shí)間了嘱能,粗枝大葉的了解了點(diǎn),因?yàn)楫?dāng)時(shí)資料比較少员咽,正式項(xiàng)目中也沒有開始用到,也就沒怎么去研究贮预。

? ? ? 接下來可能會去用到這個(gè)贝室,所以準(zhǔn)備去鉆研下。

? ? ? ? 上面的沒啥用仿吞,請直接略過滑频。。唤冈。

? ? ? ? 官網(wǎng)鏈接:https://cn.vuejs.org/

? ? ? Vue.js是當(dāng)下很火的一個(gè)JavaScript MVVM框架(庫)峡迷,它是以數(shù)據(jù)驅(qū)動和組件化的思想構(gòu)建的。我暫時(shí)理解為它是一個(gè)輕量版的Angular你虹。

? ? ? Vue.js提供了更加簡潔绘搞、更易于理解的API,使得我們能夠快速地上手并使用Vue.js傅物。

? ? ? 如果你之前已經(jīng)習(xí)慣了用jQuery操作DOM夯辖,學(xué)習(xí)Vue.js時(shí)請先拋開手動操作DOM的思維,因?yàn)閂ue.js是數(shù)據(jù)驅(qū)動的董饰,你無需手動操作DOM蒿褂。

? ? ? 它通過一些特殊的HTML語法,將DOM和數(shù)據(jù)綁定起來卒暂。一旦你創(chuàng)建了綁定啄栓,DOM將和數(shù)據(jù)保持同步,每當(dāng)變更了數(shù)據(jù)也祠,DOM也會相應(yīng)地更新昙楚。

開啟Vue之旅


Vue是什么?

? ? ? ? 一個(gè)MVVM框架(庫)齿坷、和angular類似桂肌。官網(wǎng)有1.0和2.0兩個(gè)版本,2.0對于1.0提高的地方永淌,可以找度娘崎场。。遂蛀。

Vue優(yōu)勢

? ? ? ? 簡單谭跨、易上手,掌握angular的朋友們,上手Vue就一句話螃宙,so easy!


vue的基礎(chǔ)使用

Vue實(shí)例

1. 引入vue.js

2. 創(chuàng)建一個(gè)vue實(shí)例

創(chuàng)建

模板語法

插值

? ? ? ? {{ variable? }} -> 普通變量

? ? ? ? {{* variable }} -> 一次性模板

? ? ? ? {{{ variable }}} -> 轉(zhuǎn)譯模板

? ? ? ? <input type="text" v-model="variable">? ? v-model? 的模板語法

代碼

? ? ? 通過使用v-once 指令蛮瞄,你也能執(zhí)行一次性地插值,當(dāng)數(shù)據(jù)改變時(shí)谆扎,插值處的內(nèi)容不會更新挂捅。但請留心這會影響到該節(jié)點(diǎn)上所有的數(shù)據(jù)綁定:

? ? ? ? <span v-once>my Message: {{ msg }}</span>

? ? ? 對于所有的數(shù)據(jù)綁定, Vue.js 都提供了完全的 JavaScript 表達(dá)式支持:

Javascript 表達(dá)式

? ? ? 這些表達(dá)式會在所屬 Vue 實(shí)例的數(shù)據(jù)作用域下作為 JavaScript 被解析堂湖。有個(gè)限制就是闲先,每個(gè)綁定都只能包含單個(gè)表達(dá)式。語句无蜂、流程控制等不生效伺糠。

指令

? ? ? 指令(Directives)是帶有v-前綴的特殊屬性。指令屬性的值預(yù)期是單一 JavaScript 表達(dá)式(除了v-for)斥季。指令的職責(zé)就是當(dāng)其表達(dá)式的值改變時(shí)相應(yīng)地將某些行為應(yīng)用到 DOM 上训桶。

vue事件

? ? ? ? v-on:事件名

? ? ? ? v-on:mouseenter/mouseleave

? ? ? ? v-on:click? —> 縮略 @click? ? ("v-on:"可以縮略為"@")

? ? ? ? v-on:contextmenu/keydown

? ? ? ? v-on:keyup.鍵碼/enter/delete/left/right/top/bottom/ctrl.v/prevent.stop(阻止默認(rèn)事件)

。酣倾。舵揭。

事件

? ? ? tips:@contextmenu.stop.prevent = "method"中,stop灶挟、prevent前面的點(diǎn)( . )為修飾符琉朽。

v-for 循環(huán)

1. ?<li v-for="value in variable"></li> ?—> array

2. <li v-for="(key,value) in json"></li> ?—> ?json

1.極簡留言板

? ? ? ? ↑ ?不添加 ?track-by="$index" ?循環(huán)中command相同的內(nèi)容不重復(fù)顯示

json
網(wǎng)頁中的顯示結(jié)果

filter(過濾器 / 格式化數(shù)據(jù))

? ? ? ? |:通道操作符

? ? ? ? pipe -> 通道:前者表達(dá)式的計(jì)算值作為后表達(dá)式的計(jì)算參數(shù)

? ? ? ? 過濾器可以用在兩個(gè)地方:mustache 插值和v-bind表達(dá)式毒租。

mustache and v-bind
filter—mustache
網(wǎng)頁顯示
other—filter

? ? ? ? filter:currency(默認(rèn)帶$稚铣、保留兩位小數(shù))/lowercase/uppercase/capitalize(首字母大寫)

自定義filter

v-bind

? ? ? ? <div v-bind:class="{className:boolean,className2:boolean}"></div>

? ? ? ? <img v-bind:src="variable"/>? ? ? —>? 縮略寫法:<img :src="variable"/>

v-bind

自定義指令

? ? ? ?vue.directive('指令名',function(){

? ? ? ? ? ? ? this.el ?—>對應(yīng)的DOM節(jié)點(diǎn)

? ? ? ?})

計(jì)算屬性

模板內(nèi)的表達(dá)式是非常便利的,但是它們實(shí)際上只用于簡單的運(yùn)算墅垮。在模板中放入太多的邏輯會讓模板過重且難以維護(hù)惕医。

這就是對于任何復(fù)雜邏輯,都應(yīng)當(dāng)使用計(jì)算屬性的原因算色。

computed

計(jì)算緩存 VS Methods

methods

? ? ? ? 我們可以將同一函數(shù)定義為一個(gè) method 而不是一個(gè)計(jì)算屬性抬伺。對于最終的結(jié)果,兩種方式確實(shí)是相同的灾梦。

? ? ? ? 然而峡钓,不同的是計(jì)算屬性是基于它們的依賴進(jìn)行緩存的。計(jì)算屬性只有在它的相關(guān)依賴發(fā)生改變時(shí)才會重新求值若河。相比而言能岩,只要發(fā)生重新渲染,method 調(diào)用總會執(zhí)行該函數(shù)萧福。

? ? ? ? 根據(jù)實(shí)際情況分析拉鹃,確定是否需要緩存,從而確定使用computed 或 methods

Computed屬性 VS Watched屬性

watch

? ? ? ? ?上面代碼是命令式的和重復(fù)的。將它與 computed 屬性的版本進(jìn)行比較:↓↓

computed

Watcher

? ? ? ? 計(jì)算屬性在大多數(shù)情況下更合適膏燕,但有時(shí)也需要一個(gè)自定義的 watcher 钥屈。

? ? ? ? Vue 提供一個(gè)更通用的方法通過watch選項(xiàng),來響應(yīng)數(shù)據(jù)的變化坝辫。當(dāng)你想要在數(shù)據(jù)變化響應(yīng)時(shí)篷就,執(zhí)行異步操作或開銷較大的操作,這是很有用的近忙。

Class與Style綁定

綁定HTML Class

? ? ? ? v-bind:class="..." ? ? ?可以跟對象腻脏、數(shù)組

綁定內(nèi)聯(lián)樣式

? ? ? ? v-bind:style="..."? ? ? 可以跟對象、數(shù)組

? ? ? ? 當(dāng)v-bind:style使用需要特定前綴的 CSS 屬性時(shí)银锻,如transform永品,Vue.js 會自動偵測并添加相應(yīng)的前綴。

? ? ? ? 從 2.3 開始可以為style綁定中的屬性提供一個(gè)包含多個(gè)值的數(shù)組击纬,常用于提供多個(gè)帶前綴的值:

? ? ? ? <div:style="{ display: ["-webkit-box", "-ms-flexbox", "flex"] }">

條件渲染

v-if鼎姐、v-else-if、v-else

? ? ? ? <h1 v-if="ok">Yes</h1> ?使用v-if進(jìn)行條件渲染

? ? ? ? <h1 v-else>No</h1> ? ? ?可以使用v-else添加一個(gè)“else”塊

? ? ? ? v-else更振、v-else-if 元素必須緊跟在v-if或者v-else-if元素的后面——否則它將不會被識別炕桨。

template中的v-if條件組

? ? ? ? 因?yàn)関-if是一個(gè)指令,需要將它添加到一個(gè)元素上肯腕。但是如果我們想切換多個(gè)元素呢献宫?此時(shí)我們可以把一個(gè)<template>元素當(dāng)做包裝元素,并在上面使用v-if实撒。

? ? ? ? 最終的渲染結(jié)果不會包含<template>元素元素當(dāng)做包裝元素姊途,并在上面使用v-if。最終的渲染結(jié)果不會包含元素知态。

template

用key管理可復(fù)用的元素

? ? ? ? Vue 會盡可能高效地渲染元素捷兰,通常會復(fù)用已有元素而不是從頭開始渲染。這么做负敏,除了使 Vue 變得非彻泵快之外,還有一些有用的好處其做。例如顶考,允許用戶在不同的登錄方式之間切換:

login

? ? ? ? 在上面的代碼中切換loginType將不會清除用戶已經(jīng)輸入的內(nèi)容。因?yàn)閮蓚€(gè)模版使用了相同的元素妖泄,<input>不會被替換掉——僅僅是替換了它的的placeholder驹沿。

? ? ? ? Vue 提供了一種方式來聲明“這兩個(gè)元素是完全獨(dú)立的——不要復(fù)用它們”。只需添加一個(gè)具有唯一值的key屬性浮庐。

添加key屬性

? ? ? ? 這樣每次切換時(shí)甚负,輸入框都將被重新渲染柬焕。<label>元素仍然會被高效地復(fù)用,因?yàn)樗鼈儧]有添加 key 屬性梭域。

v-show

? ? ? ? v-show指令也用于根據(jù)條件展示元素的選項(xiàng)

? ? ? ? <h1 v-show="ok">Hello!</h1>

? ? ? ? 不同的是帶有v-show的元素始終會被渲染并保留在 DOM 中斑举。v-show是簡單地切換元素的 CSS 屬性display。

? ? ? ? tips:v-show不支持<template>語法病涨,也不支持v-else富玷。

v-if and v-show

? ? ? ? 一般來說,v-if有更高的切換開銷既穆,而v-show有更高的初始渲染開銷赎懦。因此,如果需要非常頻繁地切換幻工,則使用v-show較好励两;如果在運(yùn)行時(shí)條件不太可能改變,則使用v-if較好囊颅。

v-if 和 v-for 一起使用

? ? ? ? 當(dāng) v-if 與 v-for 一起使用時(shí)当悔,v-for 具有比 v-if 更高的優(yōu)先級。

列表渲染

v-for

1.<li v-for="value in variable"></li> ——>array

2.<li v-for="(key,value) in json"></li> ——>json

極簡留言板

? ? ? ? ↑? 不添加? track-by="$index"? 循環(huán)中command相同的內(nèi)容不重復(fù)顯示

json
網(wǎng)頁中顯示結(jié)果


of 替代 in

Template ?v-for

v-for



Vue組件






作者持續(xù)更新中踢代。盲憎。。



友情鏈接:http://www.reibang.com/p/5ba253651c3b?從環(huán)境搭建到發(fā)布


文筆有限胳挎,歡迎吐槽1怼!慕爬!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窑眯,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子澡罚,更是在濱河造成了極大的恐慌伸但,老刑警劉巖肾请,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件留搔,死亡現(xiàn)場離奇詭異,居然都是意外死亡铛铁,警方通過查閱死者的電腦和手機(jī)隔显,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來饵逐,“玉大人括眠,你說我怎么就攤上這事”度ǎ” “怎么了掷豺?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵捞烟,是天一觀的道長。 經(jīng)常有香客問我当船,道長题画,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任德频,我火速辦了婚禮苍息,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘壹置。我一直安慰自己竞思,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布钞护。 她就那樣靜靜地躺著盖喷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪难咕。 梳的紋絲不亂的頭發(fā)上传蹈,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機(jī)與錄音步藕,去河邊找鬼惦界。 笑死,一個(gè)胖子當(dāng)著我的面吹牛咙冗,可吹牛的內(nèi)容都是我干的沾歪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼雾消,長吁一口氣:“原來是場噩夢啊……” “哼灾搏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起立润,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤狂窑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后桑腮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泉哈,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年破讨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丛晦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,773評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡提陶,死狀恐怖烫沙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情隙笆,我是刑警寧澤锌蓄,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布升筏,位于F島的核電站,受9級特大地震影響瘸爽,放射性物質(zhì)發(fā)生泄漏仰冠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一蝶糯、第九天 我趴在偏房一處隱蔽的房頂上張望洋只。 院中可真熱鬧,春花似錦昼捍、人聲如沸识虚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽握础。三九已至蚜印,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間麻裳,已是汗流浹背甥桂。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工蚊夫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留银择,地道東北人多糠。 一個(gè)月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像浩考,于是被迫代替她去往敵國和親夹孔。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評論 2 354

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

  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容析孽,還有我對于 Vue 1.0 印象不深的內(nèi)容搭伤。關(guān)于...
    云之外閱讀 5,050評論 0 29
  • 1.安裝 可以簡單地在頁面引入Vue.js作為獨(dú)立版本,Vue即被注冊為全局變量袜瞬,可以在頁面使用了怜俐。 如果希望搭建...
    Awey閱讀 11,016評論 4 129
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,207評論 0 6
  • vue.js 從基礎(chǔ)到實(shí)戰(zhàn) Vue.js 介紹 什么是vue vue一詞是法語,同英語中的view邓尤。vue.js是...
    記憶的時(shí)間差閱讀 2,214評論 1 25
  • 一拍鲤、汗法 《素問·陰陽應(yīng)象大論》說:“其在皮者,汗而發(fā)之裁赠〉钅”《金匱·痙暍病》篇有:“濕家身煩痛,可與麻黃加術(shù)湯發(fā)其...
    天一書社閱讀 1,124評論 0 0