zoukankan      html  css  js  c++  java
  • vue父子组件通讯

    父组件中引入子组件:import
     
    1、通过prop实现通信
        子组件的props选项能够接收来自父组件的数据(不能传递)
    (1)静态传递
                子组件通过props选项来声明一个自定义的属性,然后父组件就可以在嵌套标签的时候,通过这个属性往子组件传递数据了
    (2)动态传递(常用)
                通过v-bind绑定props的自定义属性,传递过去就是一个动态值
     
    2、通过$ref实现通信
        如果ref用在子组件上,指向的是组件实例,可以理解为对子组件的索引,通过$ref可以获取到在子组件里定义的方法和属性
        如果ref用在普通的dom元素上,引用指向的就是dom元素,通过$ref可以获取该dom属性集合,轻松访问到dom元素,作用与jq选择器类似。
     
        举例:
            父组件中:<child ref=‘msg'></child>
                            mounted:function () {this.$ref.msg.getMessage ('我是子组件') }
        
            子组件中:methods: {getMessage (m) {this.message = m}}
            // 解释:通过ref=‘msg’可以将子组件child的实例指给$ref;并通过.msg.getMessage()调用到了子组件getMessage方法
        
        (1)prop着重于数据的传递,它不能调用子组件里的属性和方法,像创建文章组件时,自定义标题和内容这样的使用场景,适合使用prop
        (2)$ref着重于索引,主要用来调用子组件里的属性和方法,其实并不善于传递数据,而且ref用在dom元素的时候,能起到选择器的作用,这个功能比索引更常用到。
    3、通过$emit实现通信(实现子组件向父组件通信)
        vm.$emit(event, arg)
        $emit绑定一个自定义事件event,当语句被执行到的时候,就会将参数arg传递给父组件,父组件通过@event监听并接收参数
     
        举例:
            父组件中:<child @getMessage=’showMsg'></child>
                            methods: {showMsg (title) {this.title = title}}
            子组件中:mounted: function () {this.$emit(‘getMessage’, '我是父组件')}
  • 相关阅读:
    Java基础05 构造函数
    Java基础04 类变量、成员变量、局部变量的解析
    Java基础03 八大基本类型以及类型之间的转换
    Java基础02 面向对象编程的三大特性详解
    软件工程作业02
    202009自我介绍
    2019春学期总结
    第十二周作业
    第十一周作业
    第十周作业
  • 原文地址:https://www.cnblogs.com/limengyao/p/10246857.html
Copyright © 2011-2022 走看看