緩存 :<keep-alive> <transition>
<keep-alive> 包裹動態(tài)組件時,會緩存不活動的組件實例,而不是銷毀它們。和 <transition> 相似,<keep-alive> 是一個抽象組件:它自身不會渲染一個 DOM 元素,也不會出現(xiàn)在父組件鏈中。
當組件在 <keep-alive> 內(nèi)被切換,它的 activated 和 deactivated 這兩個生命周期鉤子函數(shù)將會被對應(yīng)執(zhí)行。
渲染視圖組件: router-view
<router-view> 組件是一個 functional 組件,渲染路徑匹配到的視圖組件。<router-view> 渲染的組件還可以內(nèi)嵌自己的 <router-view>,根據(jù)嵌套路徑,渲染嵌套組件。
因為它也是個組件,所以可以配合 <transition> 和 <keep-alive> 使用。如果兩個結(jié)合一起用,要確保在內(nèi)層使用 <keep-alive>:
<transition>
<keep-alive>
<router-view></router-view>
</keep-alive>
</transition>
組件: components
a鏈接:<router-link to="/about">About</router-link>
路徑中重定向: redirect
{
path: '/',
redirect: '/goods'
}, {
path: '/goods',
component: goods
}
用$http時要引入 vue-resource
import vueResource from 'vue-resource'
vue.use(vueResource)
$refs用法:
一般來講,獲取DOM元素,需document.querySelector(".input1")獲取這個dom節(jié)點,然后在獲取input1的值。
但是用ref綁定之后,我們就不需要在獲取dom節(jié)點了,直接在上面的input上綁定input1,然后$refs里面調(diào)用就行。
例:<div ref = ' a '></div> var a = this.$refs.a
什么時候需要用的Vue.nextTick()
你在Vue生命周期的created()鉤子函數(shù)進行的DOM操作一定要放在Vue.nextTick()的回調(diào)函數(shù)中。原因是什么呢,原因是在created()鉤子函數(shù)執(zhí)行的時候DOM 其實并未進行任何渲染,而此時進行DOM操作無異于徒勞,所以此處一定要將DOM操作的js代碼放進Vue.nextTick()的回調(diào)函數(shù)中。與之對應(yīng)的就是mounted鉤子函數(shù),因為該鉤子函數(shù)執(zhí)行時所有的DOM掛載和渲染都已完成,此時在該鉤子函數(shù)中進行任何DOM操作都不會有問題 。
在數(shù)據(jù)變化后要執(zhí)行的某個操作,而這個操作需要使用隨數(shù)據(jù)改變而改變的DOM結(jié)構(gòu)的時候,這個操作都應(yīng)該放進Vue.nextTick()的回調(diào)函數(shù)中。
原因是,Vue是異步執(zhí)行dom更新的,一旦觀察到數(shù)據(jù)變化,Vue就會開啟一個隊列,然后把在同一個事件循環(huán) (event loop) 當中觀察到數(shù)據(jù)變化的 watcher 推送進這個隊列。如果這個watcher被觸發(fā)多次,只會被推送到隊列一次。這種緩沖行為可以有效的去掉重復(fù)數(shù)據(jù)造成的不必要的計算和DOm操作。而在下一個事件循環(huán)時,Vue會清空隊列,并進行必要的DOM更新。
當你設(shè)置 vm.someData = 'new value',DOM 并不會馬上更新,而是在異步隊列被清除,也就是下一個事件循環(huán)開始時執(zhí)行更新時才會進行必要的DOM更新。如果此時你想要根據(jù)更新的 DOM 狀態(tài)去做某些事情,就會出現(xiàn)問題。。為了在數(shù)據(jù)變化之后等待 Vue 完成更新 DOM ,可以在數(shù)據(jù)變化之后立即使用 Vue.nextTick(callback) 。這樣回調(diào)函數(shù)在 DOM 更新完成后就會調(diào)用。
this.$emit('add', event.target);子組件把數(shù)據(jù)傳給 父組件
Vue.set( target, key, value )設(shè)置對象的屬性。如果對象是響應(yīng)式的,確保屬性被創(chuàng)建后也是響應(yīng)式的,同時觸發(fā)視圖更新。這個方法主要用于避開 Vue 不能檢測屬性被添加的限制。
props 中的數(shù)據(jù)是數(shù)組,默認值
props: {
selectFoods: {
type: Array,
default: function () {
return {
price: 10,
count: 1
}
}
}
}

在computed中的function 是根據(jù)數(shù)據(jù)變化 而執(zhí)行的
在vue.js中 返回數(shù)據(jù)
return ` ¥${this.minPrice}元起送 `
這里用的是es6反引號
子組件中
this.$emit('add')
父組件中
<cartcontrol @add="addFood"></cartcontrol>
當子組件拋出this.$emit('add')這句話時,父組件就要調(diào)用addFood事件(理解: 相當于子組件的回調(diào)函數(shù))
時間顯示
yyyy-MM-dd hh:mm 這個月 一定要大寫 不然就跟分鐘沖突了
Math.abs(x) === x的絕對值