048_末晨曦Vue技术_处理边界情况之使用$root访问根实例

处理边界情况之使用$root访问根实例

点击打开视频教程

 在每个 new Vue 实例的子组件中,其根实例可以通过 $root property 进行访问。 

例如,在这个根实例中:

src\main.js

 import Vue from 'vue'
import App from './App.vue'
//引入ElementUI组件库
import ElementUI from 'element-ui';
//引入ElementUI全部样式
import 'element-ui/lib/theme-chalk/index.css';

// import {Plugin1,Plugin2} from './plugins/plugins.js'

Vue.config.productionTip = false

//使用ElementUI
Vue.use(ElementUI)

// Vue.use(Plugin1,'参数1')

// Vue.use(Plugin2,'参数2')

new Vue({

data: {
foo: 1
},
computed: {
bar: function () {
return '满天星辰不及你'
}
},
methods: {
baz: function () {
return '满天星辰不及你吖'
}
},

render: h => h(App),
}).$mount('#app')

所有的子组件都可以将这个实例作为一个全局 store 来访问或使用。

 <template>
<div id="app">
<!-- 获取根组件的数据 -->
{{ $root.foo }}
<!-- 访问根组件的计算属性 -->
{{ $root.bar }}
<button @click="change">改变</button>
</div>
</template>

<script>
export default {
name: 'App',
data(){
return {

}
},
mounted(){

},
computed:{

},
methods:{
// 写入根组件的数据
change(){
this.$root.foo = '末晨曦吖'

// 调用根组件的方法
let name = this.$root.baz()
console.log(name);
}
}
}
</script>

<style scoped>

</style>

注意:对于 demo 或非常小型的有少量组件的应用来说这是很方便的。不过这个模式扩展到中大型应用来说就不然了。因此在绝大多数情况下,我们强烈推荐使用 Vuex 来管理应用的状态。

标签: Javascript

添加新评论