子组件使用watch监听父组件数据的变化也随之变化
1.父子之间的通信我们通过props传递信息,但是父组件的数据会随时变化,子组件也要跟随变化。
使用watch监听父组件传递过来的值。
父组件中(search为子组件):
<template>
<img src="../assests/search.png" alt="" @click="getSearch()" /><input
type="text"
v-model="searchText"
placeholder="可搜索当前生效图片"
/>
<search :list="searchList" />
</template>
<script>
methods:{
getSearch() {
if (this.searchText != "") {
//发送axios请求
searchData(this.searchText).then((res) => {
if (res.data.status == 0) {
if (res.data.data.length != 0) {
this.searchList = res.data.data;
} else {
this.searchList = null;
}
}
console.log("search", res.data.data);
});
this.isSearch = true;
}
},
}
</script>
子组件中(主要监听的是 list,然后重新赋值):
<template> <div class="li" style="overflow: hidden" v-for="item in listData" :key="item.vId" > {{item.name}} </div> </template> <script> export default { props:['list'], data() { return { listData: this.list||null, }; }, watch: { list: { handler(newVal, oldVal) { this.listData=newVal; }, deep: true } }, } </script>

浙公网安备 33010602011771号