美文网首页
父链 和 子链

父链 和 子链

作者: lyp82nkl | 来源:发表于2019-07-12 21:26 被阅读0次

父链:this.$parent

$parent 属性可以用来从一个子组件访问父组件的实例。它提供了一种机会,可以在后期随时触达父级组件,以替代将数据以 prop 的方式传入子组件的方式。

点击子组件中的按钮,修改父组件的数据。

   <div id="app" style="border: 1px solid red;">
        {{ text }} <br><br>
        <child-component></child-component>
    </div>

    var app = new Vue({
            el: '#app',
            data: {
                text: '你好,我是父组件'
            },

            components: {
                'child-component': {
                    template: '<button @click="handle">修改父组件数据</button>',
                    methods: {
                        handle: function () {
                            this.$parent.text = '父组件数据被改了' 
                        }
                    }
                }
            }
        })

点击后:

子链:this.refs

尽管存在 prop 和事件,有的时候你仍可能需要在 JavaScript 里直接访问一个子组件。为了达到这个目的,你可以通过 ref 特性为这个子组件赋予一个 ID 引用

<a-component ref="a"></a-component>  // a 组件取名为 a
<b-component ref="b"></b-component>  // b 组件取名为 b
<c-component ref="c"></c-component>  // c 组件取名为 c

父组件中有三个按钮,并且有三个子组件,点击 A 按钮,改变 A 组件数据;点击 B 按钮,改变 B 组件数据;点击 c 按钮,改变 c 组件数据;

    <div id="app" style="border: 1px solid red;">
        <button @click="changeA">A</button>
        <button @click="changeB">B</button>
        <button @click="changeC">C</button>

     // 三个子组件,每个子组件都有自己的名字
        <a-component ref="a"></a-component>
        <b-component ref="b"></b-component>
        <c-component ref="c"></c-component>
    </div>



        var app = new Vue({
            el: '#app',
            data: {
            },
            methods: {
                changeA: function () { // 改变 A组件的 text
                    this.$refs.a.text = '被改变了的A'
                },
                changeB: function () { //  改变 B组件的 text
                    this.$refs.b.text = 'B被改变了'
                },
                changeC: function () { // 改变 C组件的 text
                    this.$refs.c.text = '改变C'
                }
            },
            components: {
                'a-component': {
                    template: '<div>{{ text }}</div>',
                    data: function () {
                        return {
                            text: '我是 A组件'
                        }
                    }
                },
                'b-component': {
                    template: '<div>{{ text }}</div>',
                    data: function () {
                        return {
                            text: '我是 B组件'
                        }
                    }
                },
                'c-component': {
                    template: '<div>{{ text }}</div>',
                    data: function () {
                        return {
                            text: '我是 C组件'
                        }
                    }
                }
            }
        })

点击后:

相关文章

  • 父链 和 子链

    父链:this.$parent $parent 属性可以用来从一个子组件访问父组件的实例。它提供了一种机会,可以在...

  • Vue组件间的通信

    子传父:通过events($emit);通过父链 / 子链通信($parent / $children);ref也...

  • web前端开发中父链和子链方式实现通信

    父链和子链是一种父子间组件通信的新方式。 概念 父链: 在子组件中,使用this.$parent可以直接访问该组件...

  • vue面试题

    1、组件间怎么传值,具体说说代码怎样实现 子传父:子向父是通过 events($emit);通过父链 / 子链也可...

  • VUE面试总结

    1、组件间怎么传值,具体说说代码怎样实现 子传父:子向父是通过 events($emit);通过父链 / 子链也可...

  • 事件的传递和响应

    响应链 能响应事件的 必须是UIResponser的子类; 响应链是 子视图-> 父视图的. 传递链 首先判断主窗...

  • 一篇就够-JS继承的多种方式和实现

    原型链继承 方法:子构造函数的prototype指向为父构造函数的实例,因为原型链是proto的链表,父构造函数的...

  • Vue组件详解---非父组件之间的组件通信

    官网描述: 图形实例: 不废话 看代码 小栗子: 父链:this.$parent 子链:this.$refs 提供...

  • VUE面试题

    **1、组件间怎么传值,具体说说代码怎样实现 ** 子传父:子向父是通过 events($emit);通过父链 /...

  • 墨客MOAC大事记

    2019.1.3,墨客女娲1.06版实现母链和子链原子跨链 2019.1.3, 烨链科技成功实现MOAC(墨客)子...

网友评论

      本文标题:父链 和 子链

      本文链接:https://www.haomeiwen.com/subject/emfukctx.html