首页 > 其他 > 详细

Vue $root、$parent、$refs

时间:2019-05-22 16:10:21      阅读:101      评论:0      收藏:0      [点我收藏+]

 

Vue处理边界技术分享图片parent、$refs

下面的功能都是有风险的,尽量避免使用

Vue 子组件可以通过 $root 属性访问父组件实例的属性和方法

<div id="app">
    <root-obj></root-obj>
</div>
Vue.component(‘root-obj‘, {
    data() {
        return {

        }
    },
    template: `<div>
                    <button @click=‘getRoot‘>$Root</button>
                </div>`,
    methods: {
        getRoot() {
            console.log(this)
            console.log(this.$root)
        }
    }
})
var app = new Vue({
    el: ‘#app‘,
    data: {
        msg: ‘Root‘
    }
})

技术分享图片parent 的区别

技术分享图片parent 都能够实现访问父组件的属性和方法,两者的区别在于,如果存在多级子组件,通过技术分享图片root 访问得到的是根父组件

<div id="app">
    <root-obj></root-obj>
</div>
Vue.component(‘root-obj‘, {
    data() {
        return {

        }
    },
    template: `<div>
                    <button @click=‘getRoot‘>子组件</button>
                    <child-component></child-component>
                </div>`,
    methods: {
        getRoot() {
            console.log(this)
            console.log(this.$root)
            console.log(this.$parent)
        }
    }
})
Vue.component(‘child-component‘, {
    data() {
        return {

        }
    },
    template: `<div>
                <button @click=‘getRoot‘>子子组件</button>
                </div>`,
    methods: {
        getRoot() {
            console.log(this)
            console.log(this.$root)
            console.log(this.$parent)
        }
    }
})
var app = new Vue({
    el: ‘#app‘,
    data: {
        msg: ‘Root‘
    }
})

$refs 访问子组件实例

通过在子组件标签定义 ref 属性,在父组件中可以使用$refs 访问子组件实例

<button @click=‘refView‘>通过ref访问子组件</button>
Vue.component(‘base-input‘, {
    data() {
        return {
            msg: ‘base-input‘
        }
    },
    template: `<input type=‘text‘/>`
})
var app = new Vue({
    el: ‘#app‘,
    data: {
        msg: ‘Root‘
    },
    methods: {
        refView() {
            console.log(this.$refs.baseInput)
            this.$refs.baseInput.$el.focus()
        }
    }
})

Vue $root、$parent、$refs

原文:https://www.cnblogs.com/huancheng/p/10906095.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!