修改實例上的數(shù)據(jù)
vm.$set(vm.movie: 'adress', '華聯(lián)') vm.$set(target, 屬性名, 屬性值)
Vue.set(targrt, 屬性名, 屬性值) 這兩個都可以給VUE追加自定義數(shù)據(jù)
this.set(this.movies, 'address', ‘上?!? (在事件里)
在方法里添加
vm.$set(vm.arr, 0, 'learn')
數(shù)組變異方法(改變原數(shù)組)
vm.hobby.splice(2, 0, 'qwe')替換
vm.hobb.pop() 刪除最后一個
push()
shift()
unshift()
sort()
reverse()
數(shù)組不改變原數(shù)組(返回一個新數(shù)組)
filter()
concat()
slice()
表單修飾符(可以連用)
v-model.trim 去掉前后空格
v-model.lazy 失去焦點
v-model.number 只識別數(shù)字
事件修飾符(可連用)
@click.prevent="sub" 阻止瀏覽器默認行為
.stop 阻止冒泡
.once 只觸發(fā)一次
.self 在自身出發(fā)
按鍵修飾符(可連用)
.enter
.tab
.up
.down
.left
.right
例子 @keyup.enter=""
計算屬性(用它的值)(有緩存)(沒辦法傳值)
{{reverseStr}}(方法一)屬性的調(diào)用
conputed: {
reverseStr() {
return this.msg.split(''),reverse().join('')
},
address: {
set(){
要修改原有的屬性
},
get(){
return
}
}
}
{{reverseStr}()} (方法二) 方法的調(diào)用 (需要傳參時用)
methods: {
reverseStr() {
return this.msg.split(''),reverse().join('')
}
}這個方法比computed性能低,沒有緩存
watch {} 監(jiān)聽(一個值影響多個值的時候)
監(jiān)聽data里面的屬性改變的時候才會觸發(fā)
msg(newVal, oldVal) {
this.rerser(data新定義) = newVal.split(''),reverse().join('')
}
vue生命周期
在使用new Vue()創(chuàng)建一個Vue實例,在vue構(gòu)造函數(shù)內(nèi)部發(fā)生的事情
Vue的三個階段
1 創(chuàng)建階段
1)收集配置項 ,初始化時間 --- beforeCreate()
此時的this.$el this.$data === undefined
2) 把配置項分配項到實例,但el沒有掛載 ------created()
this.$el == undefined this.$data可訪問到
(在這個鉤子函數(shù)中可以請求數(shù)據(jù))
(第一找 如果沒有template(模板))第二找如果沒有沒有el 這個周期是沒有的,停留在這個周期 。render優(yōu)先級最高
3)beforeMount() 根據(jù)模板和數(shù)據(jù)生成虛擬的dom,存在內(nèi)存中
4)mounted() 把內(nèi)存里面的虛擬dom 替換了模板,有了真實的dom,el掛在完畢(可以操作dom了,比如一進頁面獲取input的焦點)
2更新階段(多次觸發(fā))
1)beforeUpdate 數(shù)據(jù)改變
2) updated 視圖已經(jīng)改變
3銷毀階段
1)beforeDestroy() 銷毀前
2) destrooyed() 銷毀后