Vue处理边界parent、$refs
下面的功能都是有风险的,尽量避免使用
Vue 子组件可以通过 $root 属性访问父组件实例的属性和方法
Vue.component('root-obj', { data() { return { } }, template: ` `, methods: { getRoot() { console.log(this) console.log(this.$root) } } }) var app = new Vue({ el: '#app', data: { msg: 'Root' } })
parent 的区别
parent 都能够实现访问父组件的属性和方法,两者的区别在于,如果存在多级子组件,通过root 访问得到的是根父组件
Vue.component('root-obj', { data() { return { } }, template: ` `, methods: { getRoot() { console.log(this) console.log(this.$root) console.log(this.$parent) } } }) Vue.component('child-component', { data() { return { } }, template: ` `, 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 访问子组件实例
Vue.component('base-input', { data() { return { msg: 'base-input' } }, template: `` }) var app = new Vue({ el: '#app', data: { msg: 'Root' }, methods: { refView() { console.log(this.$refs.baseInput) this.$refs.baseInput.$el.focus() } } })