一、監(jiān)聽對(duì)象
清河ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!watch的deep設(shè)為了true,這樣的話,如果修改了這個(gè)queryData中的任何一個(gè)屬性,都會(huì)執(zhí)行handler這個(gè)方法。不過其實(shí)這樣開銷是蠻大的,尤其是對(duì)象里面結(jié)構(gòu)嵌套過深的時(shí)候。而且有時(shí)候我們就想關(guān)心這個(gè)對(duì)象中的某個(gè)屬性,比如name,這個(gè)時(shí)候可以這樣
對(duì)象具體屬性的watch可以直接用引號(hào)把屬性括起來,就可以實(shí)現(xiàn)對(duì)象中特定屬性的監(jiān)聽事件
watch: {
'queryData.name': {
handler: function() {
//do something
},
}
}
或
watch: {
'queryData.name'(newValue, oldValue) {
console.log(newValue)
}
}
二、知道何時(shí)使用v-if
(以及何時(shí)避免使用)
當(dāng)v-if
被打開或關(guān)閉時(shí),它將創(chuàng)建并完全銷毀該元素。相反,v-show
將創(chuàng)建該元素并將其留在那里,通過設(shè)置其樣式為display: none
來隱藏它。(補(bǔ)充:v-show是不支持寫在template模板上的)
如果你要切換的組件的渲染成本很高,那么這樣做會(huì)更有效率。
反過來說,如果不需要立即執(zhí)行昂貴的組件件,可以使用v-if
,這樣它就會(huì)跳過渲染它,而使頁(yè)面的加載速度更快一些。
三、減少?zèng)]必要的響應(yīng)式數(shù)據(jù),提高性能
如果一份數(shù)據(jù)沒必要響應(yīng)式,可以定義在data函數(shù)return的對(duì)象之外,這樣vue就不會(huì)給這份數(shù)據(jù)處理成響應(yīng)式數(shù)據(jù),從而使頁(yè)面初始化更快。有個(gè)缺點(diǎn)就是用watch是監(jiān)聽不到?jīng)]有響應(yīng)式數(shù)據(jù)的變化的。
data() {
//寫在return之外
this.a = false
const arr = []
return {
b: false,
}
},
watch: {
a(newVal) {
console.log(newVal)
},
b(newVal) {
console.log(newVal)
}
},
methods: {
clickA() {
this.a = !this.a
console.log(this.a)
},
clickB() {
this.b = !this.b
console.log(this.b)
},
}
data() {
this.a = false
const arr = []
return {
b: false,
}
},
watch: {
a(newVal) {
console.log(newVal)
},
b(newVal) {
console.log(newVal)
}
},
methods: {
clickA() {
this.a = !this.a
console.log(this.a)
},
clickB() {
this.b = !this.b
console.log(this.b)
},
}
四、給標(biāo)簽批量綁定屬性
//等同于
obj = {
nane:'pj',
age: '18',
height: '180'
}
五、給div綁定多個(gè)事件
六、v-for循環(huán)也可以遍歷對(duì)象
obj = {
item: 1,
item: 2,
item: 3,
}
七、暴露子組件的方法
methods: {
//這樣可以簡(jiǎn)化寫法, 避免 this.$refs.component1.$refs.childRef.Fn()
childFn(){
this.$refs.childRef.Fn()
}
}
八、$attrs 將爺爺組件的數(shù)據(jù)傳給孫子組件。$listeners 可以獲取到上級(jí)組件的監(jiān)聽事件
詳情學(xué)習(xí)地址:vue $attrs和$listeners的使用 - 掘金
九、this.$options
?1.過濾器不能通過this來復(fù)用?不存在的
{{ text | capitalize }}
export default {
data() {
return {
text: 'hello'
}
},
filters: {
capitalize: function (value) {
if (!value) return ''
value = value.toString()
return value.charAt(0).toUpperCase() + value.slice(1)
}
},
methods: {
getDetail() {
//這樣就不需要寫兩份filter的邏輯了,this.$options.filters還可以沿著原型鏈找到全局 的filter
let capitalize = this.$options.filters.capitalize
this.title = capitalize(res.data.title)
}
}
}
2.校驗(yàn)?zāi)硞€(gè)Boolean類型的props有沒有傳
this.$options.propsData.hasOwnProperty('disabled') ? this.disabled : this.elForm.disabled
十、取消watch的監(jiān)聽
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧