zoukankan      html  css  js  c++  java
  • vue 父子界面组件传值

    废话不多说直接上代码!

    为什么不能在子组件内直接赋值 1.控制台会报错 2.赋值后父类同步不了数据 ;

    / 子组件中
    <template>
      <div>
        <span>{{Arr}}</span>
        <span>{{child}}</span>
        <input type="button" value="点击触发" @click="send">
      </div>
    </template>
    <script>
      export default {
     /*获取传值
        * 官方文档
        * https://cn.vuejs.org/v2/guide/components-props.html#%E4%BC%A0%E5%85%A5%E4%B8%80%E4%B8%AA%E5%AF%B9%E8%B1%A1%E7%9A%84%E6%89%80%E6%9C%89-property
        * String Number Boolean Array Object Date Function Symbol
        * */
    props: {
    Arr: Array,// 参数传递 接收 数组
    },
    
        data () {
          return {
            child: '我是子组件的数据',
    childTiele: '我是子组件的数据Tiele',
    
          }
        },
        methods: {
          send () {
          // 如果传多个值就用逗号隔开 a, b, c  
            this.$emit('fromChild', this.child)
    
    //【这里调用的是父类函数】 如果需要父子同步数据的情况下可以直接
      this.$emit('SetArr', ['1','2'])
          }
        }
      }
    </script>
    
    
    
    // 父组件
    <template>
      <div>
        <span>{{name}}</span>
        // 在父组件中监听 fromChild事件  这里还可以传递 函数 直接到子组件 
        <child @fromChild="onFromChild" :Arr="Arr" ref="child1"  ></child>
    
      </div>
    </template>
    <script>
      import child from './child'
      export default {
        components: {
          child
        },
        data () {
          return {
            name: '',
    Arr:[],//参数传递 数组
          }
        },
        methods: {
          onFromChild: function (data) {
            // data就是子组件传过来的值
            // 如果传过来多个值就用逗号隔开去接收 data1, data2, data3
            this.name = data
          }
    //接收传递数据重置 数组
          SetArr(arr){
          this.Arr = arr;
    
    
    
          },
    
    setChild(){
    //父组件变更子组件数据
    
     this.$refs.child1.childTiele= '父组件变更子组件数据Tiele';
    },
    
        }
      }
    </script>
    
    
  • 相关阅读:
    设计模式学习笔记之一:策略模式
    向上转型和向下转型
    html readonly和disabled的区别
    如何自定义JSR-303标准的validator
    vue 组件属性props,特性驼峰命名,连接线使用
    laydate中设置动态改变max与min值的方法
    浅谈JS中 reduce() 的用法
    jq 实时监听input输入框的变化
    npm install --save 和 npm install -d的区别
    vue中html、js、vue文件之间的简单引用与关系
  • 原文地址:https://www.cnblogs.com/userzf/p/15714727.html
Copyright © 2011-2022 走看看