Vue组件的引用

父子组件使用

在工程目录/src下创建component文件夹,并在component文件夹下创建一个 firstcomponent.vue并写仿照 App.vue 的格式写一个组件。

<template>
  <div id="firstcomponent">
    <h1>I am a title</h1>
    <a> {{ author }} </a>
  </div>
</template>
 
<script type="text/javascript">
export default {
  data () {
    return {
      author: "第一个子组件"
    }
  }
}
</script>
 
<style>
</style>

然后在 App.vue 使用组件

第一步,引入。在<script></script>标签内的第一行写:

import firstcomponent from './component/firstcomponent.vue'

第二步,注册。在<script></script>标签内的 data 代码块后面加上 components: { firstcomponent }

export default {
  data () {
    return {
      msg: 'Hello Vue!'
    }
  },
  components: { firstcomponent }
}

第三步,使用。在<template></template>内加上<firstcomponent></firstcomponent>

<template>
  <div id="app">
    <img src="./assets/logo.png">
    <h1>{{ msg }}</h1>
    <firstcomponent></firstcomponent>
  </div>
</template>

全局组件

  • 使用更为方便,不需要声明,直接用
  • 在main.js中引入一次并使用Vue.component('组件名', 组件对象)
  • 所有的组件通过组件名使用
### Vue 中正确引用和使用组件的方法 在 Vue 中,组件引用和使用是构建模块化应用程序的核心机制之一。为了确保组件能够被正确定义、注册以及渲染,通常遵循以下几种常见的方式。 #### 1. **局部注册** 局部注册是指在一个特定的父组件中显式声明它所使用的子组件。这种方式适用于那些仅限于某个范围内的组件。 ```javascript // AComponent.vue import BComponent from './BComponent.vue'; export default { name: 'AComponent', components: { BComponent // 注册 B 组件 }, template: ` <div> <b-component></b-component> <!-- 使用已注册的 B 组件 --> </div> ` }; ``` 这种方法的优点在于清晰地表明了父子关系,并且可以避免不必要的全局污染[^1]。 #### 2. **全局注册** 对于一些会被广泛复用的基础型组件(如按钮、表格等),可以选择通过 `Vue.component()` 方法进行全局注册。这样做的好处是可以省去每次单独引入的过程。 ```javascript // main.js import Vue from 'vue'; import CComponent from '@/components/CComponent.vue'; Vue.component('c-component', CComponent); // 全局注册 C 组件 new Vue({ render: h => h(App), }).$mount('#app'); ``` 一旦完成了这样的配置之后,在任何地方都可以直接调用 `<c-component>` 而无需再次手动加载[^1]。 #### 3. **按需懒加载 (异步组件)** 当面对较为复杂的页面结构或者存在循环依赖问题时,推荐采用基于 Webpack 的动态导入功能来实现按需加载效果。这不仅可以解决潜在的循环引用难题,还能显著提升初次加载速度。 ```javascript // BComponent.vue export default { components: { DComponent: () => import('./DComponent.vue') // 动态导入 D 组件 } } ``` 上述代码片段展示了一个典型的例子:当我们只需要在某些条件下才需要用到某几个特殊的功能模块时,则可以让它们延迟至真正需要的时候再实例化出来[^1]。 另外需要注意的是,在处理像题目描述那样的复杂情况——即三个及以上层次之间相互交织形成闭环的情况下,单纯依靠同步静态方式往往难以奏效;此时就应该考虑运用前面提到过的`beforeCreate生命周期钩子函数配合Promise对象形式完成初始化工作流程控制`,或者是干脆切换成全部都走异步路径从而彻底打破原有的顺序链条限制条件约束. --- ### 总结 综上所述,Vue提供了多种灵活有效的手段让我们能够在不同场合下恰当地管理和组织我们的UI构件资源,无论是简单的嵌套还是复杂的跨文件交互都能找到对应的解决方案.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值