• vue 父组件数据修改,子组件数据未修改


    页面:

    父组件  <myfeedback></myfeedback>  子组件  <news></news> 

    myfeedback.vue

     1 <template>
     2     <div>
     3         <news :newInfo="info"><news>
     4         <div @click="infoChange">按钮</div>
     5     </div>
     6 </template>
     7 
     8 <script>
      import news from 'xxxxx' 9 export default { 10 name: "myfeedback", 11 data() { 12 return { 13 info: { 14 data1: 115 } 16 } 17 },
          components: {
            news
          },
    18     methods: {
    19         infoChange() {
    20             this.info.data1++
    21         }
    22     }
    23 };
    24 </script>

    news.vue

     1 <template>
     2     <div>
     3         <div>{{dataOne}}将父组件数据赋值给子组件数据,数据仅在mounted中渲染,父组件数据改变子组件数据不改变,需要用watch监听</div>
     4         <div>{{newInfo.dataOne}}直接使用父组件传递的数据,父组件数据改变子组件改变</div>
     5     </div>
     6 </template>
     7 
     8 <script>
     9 export default {
    10     name: "news",
    11     props: {
    12         newInfo: {
    13             type: Object
    14         }
    15     },
    16     watch: {
    17         newInfo: {
    18             handler(newValue, oldValue){
    19                 this.newInfo = newValue
    20             },
    21             deep:true
    22         }
    23     },
    24     data() {
    25         return {
    26             dataOne: 0
    27         }
    28     },
    29     mounted() {
    30         this.dataOne = this.newInfo.dataOne;
    31     }
    32 };
    33 </script>

    ps:

    1. 父组件传的值在子组件中数据仅展示,可直接使用父组件传的值,不用在子组件data中重新定义值

    2. 子组件要修改父组件的传值,则需要在子组件中定义一个值a,初始化赋值。父组件值修改,子组件用watch监听,a的值会相应做出改变。

    参考文章 https://blog.csdn.net/qq_39692513/article/details/80791458


    2019-07-08修改

    场景: 父组件list循环后:item.a = true, 点击子组件修改属性:a[3] = false,页面上的a数据未改变,

    bugfix:  this.list.$set(item, 'a', true);  item[3].a = false;

    参考文章 https://www.jianshu.com/p/71b1807b1815

  • 相关阅读:
    miniprogramer--ajax
    miniprogram 获取两点之间的距离(经纬度)
    express node-schedule
    express generate xls
    protected default
    Java UUID
    关于轮播图兼容的问题
    关于git上的一些错误信息
    cookie
    关于ajax原理介绍
  • 原文地址:https://www.cnblogs.com/1032473245jing/p/11102919.html
Copyright © 2020-2023  润新知