vue知識點(diǎn)總結(jié)(一)

VUE是什么

vue是一套用來構(gòu)建用戶界面的JavaScript框架
在學(xué)習(xí)vue之前楞陷,必須要有HTML吟榴、CSS塘幅、JavaScript的扎實(shí)基礎(chǔ)
當(dāng)前vue的最新版本是2.x

VUE的使用

  1. 使用script標(biāo)簽引入
  2. 使用vue-cli來快速搭建腳手架

VUE實(shí)例

每一個(gè)vue應(yīng)用都是通過用vue函數(shù)來創(chuàng)建一個(gè)vue實(shí)例開始的:

var vm = new Vue({
    //選項(xiàng)
})

每一個(gè)vue應(yīng)用骤竹,都是由一個(gè)通過new Vue創(chuàng)建的根Vue實(shí)例和可選的蛾派、可嵌套的俄认、可復(fù)用的組件樹組成盏触。

data對象

vue中的data對象里舶得,在vue實(shí)例創(chuàng)建的時(shí)候惕它,在其響應(yīng)式系統(tǒng)中加入了所有能在data中找到的屬性隆敢,當(dāng)這些屬性的值發(fā)生改變的時(shí)候屉佳,視圖也會(huì)響應(yīng)熊锭,一起改變拼缝。

var vm = new Vue({
  data: data
})

除了數(shù)據(jù)屬性个扰,vue實(shí)例中還暴露了一些有用的實(shí)例屬性和方法巷波。它們都有前綴$萎津,可以和用戶定義的屬性區(qū)分開來

模板語法

文本

數(shù)據(jù)綁定最常見的是“mustache”語法,也就是雙大括號:

<span>Message: {{ msg }}<span>

雙大括號里的內(nèi)容將會(huì)被替代為數(shù)據(jù)對象上面的msg屬性的值褥紫,如果綁定的這個(gè)屬性的值發(fā)生改變姜性,那么大括號內(nèi)的內(nèi)容會(huì)跟著更新。
在數(shù)據(jù)綁定里髓考,還可以支持JavaScript表達(dá)式(非語句)部念。

內(nèi)部指令

vue內(nèi)部可以使用在HTML上,HTML會(huì)根據(jù)這些指令來執(zhí)行對應(yīng)的任務(wù)氨菇,響應(yīng)式地作用于dom儡炼。

v-html

雙大括號里會(huì)把數(shù)據(jù)解釋為普通文本,而不是HTML查蓉,所以如果想輸出真正的HTML乌询,那就要使用v-html命令:

<p>Using v-html directive: <span v-html="rawHtml"></span></p>

v-bind

假如你想像雙大括號語法一樣修改HTML的屬性,那么這時(shí)候用雙大括號就不行了豌研,需要使用v-bind語法:

<div v-bind:id="dynamicId"></div>

這個(gè)指令還有一個(gè)常用的縮寫形式:

<a :href="url"></a>

v-on

這個(gè)指令可以用來監(jiān)聽DOM事件妹田,并在觸發(fā)時(shí)運(yùn)行一些JavaScript代碼

<button v-on:click="counter += 1">Add 1 </button>

v-on里還可以接受一個(gè)需要調(diào)用方法的名稱唬党。
如果需要在內(nèi)聯(lián)語句處理器中訪問原始的DOM時(shí)間,可以使用特殊變量$event把它傳入方法鬼佣。

vue還為v-on提供了事件修飾符:

  • .stop 阻止事件繼續(xù)傳播
  • .prevent 提交的事件不再阻止頁面
  • .capture 添加事件監(jiān)聽器時(shí)使用事件捕獲模式
  • .self 只當(dāng)在event.target是當(dāng)前元素自身時(shí)觸發(fā)處理函數(shù)
  • .once 點(diǎn)擊事件將只觸發(fā)一次
  • .passive 滾動(dòng)事件的默認(rèn)行為將會(huì)立即觸發(fā)

按鍵修飾符

<input v-on:keyup.13="submit">

除了根據(jù)keycode來調(diào)用鍵值驶拱,還可以使用vue提供的別名,比如enter等晶衷。

條件渲染 v-if

條件渲染可以根據(jù)條件來決定是否渲染dom:

<h1 v-if="ok"></h1>

也可以使用v-else來添加一個(gè)else塊蓝纲,v-else元素必須跟在v-if 的后面。還有v-else-if晌纫。

當(dāng)想切換多個(gè)元素的時(shí)候税迷,可以在template元素上使用v-if,template就可以當(dāng)做不可見的元素锹漱。

假如兩個(gè)模板使用了相同的HTML元素箭养,在進(jìn)行切換的時(shí)候,這個(gè)元素是不會(huì)更新的哥牍,這時(shí)候就可以使用key值來給這個(gè)元素做一個(gè)綁定露懒,這個(gè)key值是唯一的,因此同一個(gè)元素上綁定的兩個(gè)key值可以讓這兩個(gè)元素都是獨(dú)立的砂心。

v-show

這個(gè)命令可以根據(jù)條件選擇是否展示元素。

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

v-if 和v-show的區(qū)別

v-if是真正的條件渲染蛇耀,在切換的時(shí)候會(huì)有適當(dāng)?shù)匿N毀和重建辩诞,如果是假,那么就會(huì)什么也不渲染纺涤。
而v-show則是一個(gè)改變元素display的指令译暂,只是基于CSS的切換。

v-for

v-for可以根據(jù)一組數(shù)據(jù)的選項(xiàng)列表來進(jìn)行渲染撩炊,語法比較特殊:

<ul id="example-1">
  <li v-for="item in items">
    {{ item.message }}
  </li>
</ul>

var example1 = new Vue({
  el: '#example-1',
  data: {
    items: [
      { message: 'Foo' },
      { message: 'Bar' }
    ]
  }
})

其中的items是原數(shù)據(jù)數(shù)組外永,定義在data里,而item則是數(shù)組元素迭代的別名拧咳。也可以取整數(shù)表示重復(fù)伯顶。

v-for還支持一個(gè)可選參數(shù),當(dāng)做數(shù)組的索引骆膝。

<ul id="example-2">
  <li v-for="(item, index) in items">
    {{ parentMessage }} - {{ index }} - {{ item.message }}
  </li>
</ul>

其中的in也可以被of所替代 祭衩。

v-for還可以操作對象,通過一個(gè)對象的屬性來進(jìn)行迭代阅签。如果設(shè)置第二個(gè)參數(shù)key掐暮,那么就是屬性名。

當(dāng)使用v-for的時(shí)候政钟,如果更新已經(jīng)渲染的元素列表路克,那么v-for會(huì)就地復(fù)用樟结,為了方便它可以跟蹤每一個(gè)節(jié)點(diǎn)的身份,所以必須要給一個(gè)key值精算,每項(xiàng)都有唯一的id瓢宦。

變異方法

這些針對于數(shù)組的方法都能夠改變原始數(shù)組,而非變異方法則不會(huì)改變原始數(shù)組殖妇,而是返回一個(gè)新的數(shù)組刁笙。
和原生js的數(shù)組操作方法一樣,如push()等谦趣。

v-for和v-if

v-for和v-if處于同一節(jié)點(diǎn)的時(shí)候疲吸,v-for比v-if的優(yōu)先級要高。

表單輸入綁定

可以使用v-model指令在表單元素上創(chuàng)建雙向綁定前鹅。

<input v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>

表單輸入綁定的修飾符

  • .lazy修飾符可以轉(zhuǎn)變?yōu)槭褂胏hange事件時(shí)進(jìn)行同步
  • .number 如果想自動(dòng)給用戶的輸入值轉(zhuǎn)為數(shù)值類型
  • .trim 如果要自動(dòng)過濾用戶輸入的首尾空白字符

class與style綁定

我們可以給v-bind:class傳一個(gè)對象摘悴,動(dòng)態(tài)的切換class:

<div v-bind:class="{ active: isActive }"></div>

方法、計(jì)算屬性與偵聽器

數(shù)據(jù)我們可以定義在data里舰绘,方法我們可以定義在methods里蹂喻。
當(dāng)然,除了方法之外捂寿,還有一些復(fù)雜的邏輯口四,我們可以使用計(jì)算屬性。

<div id="example">
  <p>Original message: "{{ message }}"</p>
  <p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>

var vm = new Vue({
  el: '#example',
  data: {
    message: 'Hello'
  },
  computed: {
    // 計(jì)算屬性的 getter
    reversedMessage: function () {
      // `this` 指向 vm 實(shí)例
      return this.message.split('').reverse().join('')
    }
  }
})

與方法不同秦陋,計(jì)算屬性是基于它們的依賴進(jìn)行緩存的蔓彩,只在相關(guān)依賴發(fā)生改變時(shí)才會(huì)重新求值。

Vue還提供了一種更通用的方式來觀察和響應(yīng) Vue 實(shí)例上的數(shù)據(jù)變動(dòng):偵聽屬性驳概。當(dāng)需要在數(shù)據(jù)變化時(shí)執(zhí)行異步或開銷較大的操作時(shí)赤嚼,這個(gè)方式是最有用的。

var watchExampleVM = new Vue({
  el: '#watch-example',
  data: {
    question: '',
    answer: 'I cannot give you an answer until you ask a question!'
  },
  watch: {
    // 如果 `question` 發(fā)生改變顺又,這個(gè)函數(shù)就會(huì)運(yùn)行
    question: function (newQuestion, oldQuestion) {
      this.answer = 'Waiting for you to stop typing...'
      this.debouncedGetAnswer()
    }
  }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末更卒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子稚照,更是在濱河造成了極大的恐慌蹂空,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件果录,死亡現(xiàn)場離奇詭異腌闯,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)雕憔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門姿骏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人斤彼,你說我怎么就攤上這事分瘦≌盒海” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵嘲玫,是天一觀的道長悦施。 經(jīng)常有香客問我,道長去团,這世上最難降的妖魔是什么抡诞? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮土陪,結(jié)果婚禮上昼汗,老公的妹妹穿的比我還像新娘。我一直安慰自己鬼雀,他們只是感情好顷窒,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著源哩,像睡著了一般鞋吉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上励烦,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天谓着,我揣著相機(jī)與錄音,去河邊找鬼坛掠。 笑死漆魔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的却音。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼矢炼,長吁一口氣:“原來是場噩夢啊……” “哼系瓢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起句灌,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤夷陋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后胰锌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骗绕,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年资昧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了酬土。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡格带,死狀恐怖撤缴,靈堂內(nèi)的尸體忽然破棺而出刹枉,到底是詐尸還是另有隱情,我是刑警寧澤屈呕,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布微宝,位于F島的核電站,受9級特大地震影響虎眨,放射性物質(zhì)發(fā)生泄漏蟋软。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一嗽桩、第九天 我趴在偏房一處隱蔽的房頂上張望岳守。 院中可真熱鬧,春花似錦涤躲、人聲如沸棺耍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蒙袍。三九已至,卻和暖如春嫩挤,著一層夾襖步出監(jiān)牢的瞬間害幅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工岂昭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留以现,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓约啊,卻偏偏與公主長得像邑遏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子恰矩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評論 2 348

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

  • # 傳智播客vue 學(xué)習(xí)## 1. 什么是 Vue.js* Vue 開發(fā)手機(jī) APP 需要借助于 Weex* Vu...
    再見天才閱讀 3,530評論 0 6
  • vue概述 在官方文檔中记盒,有一句話對Vue的定位說的很明確:Vue.js 的核心是一個(gè)允許采用簡潔的模板語法來聲明...
    li4065閱讀 7,191評論 0 25
  • 1.安裝 可以簡單地在頁面引入Vue.js作為獨(dú)立版本,Vue即被注冊為全局變量外傅,可以在頁面使用了纪吮。 如果希望搭建...
    Awey閱讀 10,999評論 4 129
  • 2000年的小鎮(zhèn),平靜而又破敗萎胰,時(shí)間在這里總是減緩流逝的速度碾盟。幾座石橋錯(cuò)落在一條被浮藻染綠的河道上,河岸邊的粗糙柏...
    閑人赤閱讀 129評論 0 0
  • 陪伴就是最長情的告白
    冬12日閱讀 238評論 0 0