zoukankan      html  css  js  c++  java
  • 父子组件交互

    父子组件交互

    一、父组件向子组件传值

    通过 Prop 向子组件传递数据

    父组件

    <blog-post :title="My journey with Vue"></blog-post>
    

    子组件接收

    Vue.component('blog-post', {
      props: {
        title: {
          type: String,
          default: ''
        }
      },
      template: '<h3>{{ title }}</h3>'
    })
    

    单向数据流:
    父级 prop 的更新会向下流动到子组件中,但是反过来则不行。每次父级组件发生更新时,子组件中所有的 prop 都将会刷新为最新的值。

    这里有两种常见的试图改变一个 prop 的情形:
    1.这个 prop 用来传递一个初始值;这个子组件接下来希望将其作为一个本地的 prop 数据来使用。在这种情况下,最好定义一个本地的 data 属性并将这个 prop 用作其初始值:

    props: ['initialCounter'],
    data: function () {
      return {
        counter: this.initialCounter
      }
    }
    

    这种情况是只接受参数作为初始值,后来父组件传参 initialCounter 再次改变的话,counter不会跟着改变。如果想要跟着改变可加上watch

    props: ['initialCounter'],
    data: function () {
      return {
        counter: this.initialCounter
      }
    },
    watch: {
      initialCounter(newV,oldV) {
         // do something
        this.counter = newV;
         console.log(newV,oldV)
       } 
    }
    

    2.这个 prop 以一种原始的值传入且需要进行转换。在这种情况下,最好使用这个 prop 的值来定义一个计算属性:

    props: ['size'],
    computed: {
      normalizedSize: function () {
        return this.size.trim().toLowerCase()
      }
    }
    

    二、子组件向父组件传值

    通过事件向父级组件传值
    子组件

    <button @click="toParent">
    Enlarge text
    </button>
    
    methods: {
        toParent() {
          this.$emit('enlarge-text', '我是传过来的值')
        }
    }
    

    父组件

    <blog-post
    ...
    @enlarge-text="changeTxt"
    ></blog-post>
    
    methods: {
        changeTxt(val) {
          //do something
          console.log(val);
        }
    }
    

    三、父组件访问子组件属性

    调用子组件的时候 定义一个ref
    父组件

    <recodeList ref="recordChild"></recodeList>
    
    this.$refs.recordChild.属性
    this.$refs.recordChild.方法
    

    四、子组件访问父组件的属性

    子组件可以直接通过一下代码获取

    this.$parent.属性
    this.$parent.方法
    
  • 相关阅读:
    sqlnet设置网络传输加密
    临时表处理办法
    分布式事务2PC_PENDING异常处理
    统计信息收集百分比和并行改变
    dataguard丢失归档日志处理
    patch 28729262
    Cardinality
    统计信息不准导致sql性能下降
    子查询展开
    ogg 单表拆分合并进程
  • 原文地址:https://www.cnblogs.com/li-xiao-yang/p/13912666.html
Copyright © 2011-2022 走看看