1. 程式人生 > 其它 >子元件使用watch監聽父元件資料的變化也隨之變化

子元件使用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>