Vue基礎(chǔ)知識總結(jié)

vue.js是一套構(gòu)建用戶界面的漸進(jìn)式框架周偎,與其他框架不同的是熬粗,vue采用的是自底向上增量開發(fā)的設(shè)計

this

在使用vue開發(fā)的過程中布持,this的指向讓我吃了不少虧莉炉。所有的生命周期鉤子自動綁定this上下文到實(shí)例中,因此可以通過this訪問數(shù)據(jù)碴犬,對屬性和方法進(jìn)行運(yùn)算操作絮宁。
不能使用箭頭函數(shù)來定義一個生命周期方法,因?yàn)榧^函數(shù)綁定了上下文服协,因此this的指向和你期待的vue實(shí)例不一樣绍昂。
遇到過的坑,使用setTimeout的時候偿荷,function里面使用this指向的是window窘游,而不是vue實(shí)例。解決的話跳纳,可以直接使用vue實(shí)例忍饰,也可以在一開始用一變量指向this

var _self = this;

實(shí)例生命周期

  • created這個鉤子在實(shí)例創(chuàng)建之后被調(diào)用
  • mounted el被新創(chuàng)建的vm.$el替換,并被掛載到實(shí)例上去之后調(diào)用該鉤子寺庄。該鉤子在服務(wù)器端渲染期間不被調(diào)用
  • updated
    -destroyed
vue生命周期示意圖

模板語法

相關(guān)概念:在底層的實(shí)現(xiàn)上艾蓝,vue將模板編譯成虛擬DOM渲染函數(shù)。結(jié)合響應(yīng)系統(tǒng)斗塘,在應(yīng)用狀態(tài)發(fā)生改變的時候赢织,vue能夠以最小的代價將改變渲染進(jìn)DOM操作中

列表渲染

注意:由于js的限制,vue不能檢測以下變動的數(shù)組

  • 當(dāng)你直接使用索引設(shè)置一項(xiàng)內(nèi)容的時候
vm.items[indexOfItem] = newValue
  • 當(dāng)你修改數(shù)組的長度的時候
vm.items.length = newLength

解決第一點(diǎn):
兩種方法:
1.Vue.set

//Vue.set
Vue.set(example.items,indexOfItem,newvalue)

2.數(shù)組的splice方法

example.items.splice(indexOfItems,1,newValue)

解決第二個:
使用數(shù)組的splice方法

example.items.splice(newLength)

事件處理器

有時候我們需要在內(nèi)聯(lián)語句中訪問原生DOM事件馍盟∮谥茫可以使用特殊變量$event把它傳進(jìn)方法

<button v-on:click="warn('message',$event)">
Submit
</button>
methods:{
      warn:function(message,event){
          //現(xiàn)在我們可以訪問原生事件對象
          if(event)event.preventDefault()
              alert(message)
  }
}

深入響應(yīng)式原理

  • vue不允許在已經(jīng)創(chuàng)建的實(shí)例上動態(tài)的添加新的根級響應(yīng)式屬性,然而它可以使用Vue.set(object,key,value)方法將響應(yīng)屬性添加到嵌套的對象上:
Vue.set(vm.someobject,'b',2)

也可以使用vm.$set實(shí)例方法 贞岭,這也是Vue.set方法的別名:

this.$set(this.someobject,'b',2)

Vue.nextTick(callback)

原因:vue異步執(zhí)行DOM更新
為了在數(shù)據(jù)變化之后等待Vue完成更新dom,可以在數(shù)據(jù)變化之后立即使用Vue八毯。nextTick(callback).這樣回調(diào)函數(shù)在dom更新完成之后就會調(diào)用。

<div id="example">{{message}}</div>
var vm = new Vue({
  el: '#example',
  data: {
    message: '123'
  }
})
vm.message = 'new message' // 更改數(shù)據(jù)
vm.$el.textContent === 'new message' // false
Vue.nextTick(function () {
  vm.$el.textContent === 'new message' // true
})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末曹步,一起剝皮案震驚了整個濱河市宪彩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌讲婚,老刑警劉巖尿孔,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異筹麸,居然都是意外死亡活合,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門物赶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來白指,“玉大人,你說我怎么就攤上這事酵紫「娉埃” “怎么了错维?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長橄唬。 經(jīng)常有香客問我赋焕,道長,這世上最難降的妖魔是什么仰楚? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任隆判,我火速辦了婚禮,結(jié)果婚禮上僧界,老公的妹妹穿的比我還像新娘侨嘀。我一直安慰自己,他們只是感情好捂襟,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布咬腕。 她就那樣靜靜地躺著,像睡著了一般笆豁。 火紅的嫁衣襯著肌膚如雪郎汪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天闯狱,我揣著相機(jī)與錄音煞赢,去河邊找鬼。 笑死哄孤,一個胖子當(dāng)著我的面吹牛照筑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播瘦陈,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼凝危,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了晨逝?” 一聲冷哼從身側(cè)響起蛾默,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捉貌,沒想到半個月后支鸡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡趁窃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年牧挣,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片醒陆。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡瀑构,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刨摩,到底是詐尸還是另有隱情寺晌,我是刑警寧澤世吨,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站折剃,受9級特大地震影響另假,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怕犁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望己莺。 院中可真熱鬧奏甫,春花似錦、人聲如沸凌受。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽胜蛉。三九已至挠进,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間誊册,已是汗流浹背领突。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留案怯,地道東北人君旦。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像嘲碱,于是被迫代替她去往敵國和親金砍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

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