子元件使用watch監聽父元件資料的變化也隨之變化
阿新 • • 發佈:2021-12-10
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> exportdefault { props:['list'], data() { return { listData: this.list||null, }; }, watch: { list: { handler(newVal, oldVal) { this.listData=newVal; }, deep: true } }, } </script>