Vue全局与局部组件注册及父子组件通信实战解析

0 下载量 176 浏览量 更新于2024-09-03 收藏 80KB PDF 举报
本文主要介绍了Vue.js框架中组件的挂载和父子组件间通信的基本方法。 在Vue.js中,组件是构建应用的核心部分,它们可以复用并组合以创建复杂的用户界面。组件的挂载分为全局挂载和局部挂载。 1. 全局挂载组件: 在`main.js`文件中,我们首先通过`import`导入需要的组件,例如`getTime`。然后,使用`Vue.component()`方法进行全局注册,这样在整个项目中的任何地方都可以直接使用这个组件。例如: ```javascript import Vue from 'vue' import App from './App.vue' import getTime from './component/child/getTime' Vue.component('v-times', getTime) ``` 在上述代码中,`v-times`是组件的名称,`getTime`是导入的组件实例。 2. 局部挂载组件: 局部注册仅限于父组件内部,这意味着组件只能在其被注册的父组件中使用。例如: ```javascript import topTitle from "./component/systemtoptitle"; import leftMenu from "./component/systemleftmenu"; import rightContent from "./component/systemrightcontent"; export default { name: "app", components: { "v-toptitle": topTitle, "v-leftmenu": leftMenu, "v-rightcontent": rightContent }, data() { return {}; } }; ``` 在这里,`topTitle`, `leftMenu`, 和 `rightContent`组件被局部注册,并且可以在名为`app`的父组件中使用。 3. 父组件向子组件传值: 父组件可以通过属性绑定(Props)来传递数据给子组件。例如: ```html <template> <div id="toptitle"> <!-- 子组件v-logo接收sysname属性 --> <v-logo :sysname="name"></v-logo> </div> </template> ``` 在上面的代码中,`v-logo`是子组件,`sysname`是它接收的属性,`name`是父组件的数据属性。使用`:`(冒号)语法表示这是响应式的绑定,意味着当父组件的`name`属性改变时,子组件接收到的`sysname`也会相应更新。 总结,Vue组件的挂载和父子组件间的通信是实现组件化开发的关键。全局挂载允许组件在应用的任何地方使用,而局部挂载则提供了更好的封装性。通过Props,父组件可以灵活地控制子组件的行为和显示内容,这在构建大型单页应用时尤为重要。