父組件vue
<template>
<div class="home">
<model-test v-model="kk"/>
<p>{{kk}}</p>
</div>
</template>
<script>
import ModelTest from '@/components/ModelTest'
export default {
name: 'home',
data () {
return {
kk: 1
}
},
components: {
ModelTest
}
}
</script>
複製代碼
子組件vuex
<template>
<button class="add" @click="add">ADD</button>
</template>
<script>
export default {
props: {
value: Number
},
data () {
return {
a: 1
}
},
methods: {
add() {
this.a++
this.$emit('input', this.a)
}
}
}
</script>
複製代碼
父組件segmentfault
<props-test :value.sync="kk" />
複製代碼
子組件數組
<template>
<div>
<button class="add" @click="add">TEST</button>
<p>{{value}}</p>
</div>
</template>
<script>
export default {
props: {
value: Number
},
methods: {
add() {
this.$emit('update:value', 11111)
}
}
}
</script>
複製代碼
segmentfault.com/img/bVEs9x?… 瀏覽器
由於 props 要比 data先完成初始化,因此能夠利用這一點給 data 初始化一些數據進去:緩存
export default {
data (vm) {
return {
buttonSize: vm.size
}
},
props: {
size: String
}
}
複製代碼
watch: {
searchInputValue:{
handler: 'fetchPostList',
immediate: true
}
}
複製代碼
computed的數據會緩存,只有依賴的數據變化纔會執行,就是說kk值得變化,致使執行update生命週期,watch和方法都會執行,可是computed不會bash
<template>
<div class="home">
<model-test v-model="kk" />
<p @click="cc">button</p>
<p>data{{cc()}}</p>
<p>{{now}}</p>
</div>
</template>
<script>
import ModelTest from '@/components/ModelTest'
import PropsTest from '@/components/PropsTest'
export default {
name: 'home',
data() {
return {
kk: 1,
aa: 1
}
},
components: {
ModelTest,
PropsTest
},
computed: {
now () {
console.log('com')
return this.aa + 3
}
},
watch: {
kk () {
console.log('watch')
return this.kk + '3'
}
},
methods: {
cc () {
console.log('cc')
return this.aa + 3
}
}
}
</script>
複製代碼
this.debouncedGetAnswer = _.debounce(this.getAnswer, 500)
複製代碼
每次父級組件發生更新時,子組件中全部的 prop 都將會刷新爲最新的值。這意味着你不該該在一個子組件內部改變 prop。若是你這樣作了,Vue 會在瀏覽器的控制檯中發出警告。
複製代碼
* key值 value值
* 1 蘋果
* 2 橘子
* 3 香蕉
當數組倒序時,蘋果key變成3,確定會銷燬重建的,可是key值如果pingguo,就是調下順序
複製代碼
computed不能寫異步代碼
watch能夠
method當模板更新了值就會變
複製代碼
destoryed後,this上綁定的事件,監聽都會被銷燬
vm.$destory
複製代碼
props emit
$attrs $listeners A->B->C
$parent $children
#refs
provide inject
eventBus
vuex
複製代碼