IT培訓-高端面授IT培訓機構
          云和教育:云和數據集團高端IT職業教育品牌
          • 國家級
            全民數字素養與技能培訓基地
          • 河南省
            第一批產教融合型企業建設培育單位
          • 鄭州市
            數字技能人才(碼農)培養評價聯盟

          VUE中怎樣注冊組件?

          • 發布時間:
            2022-10-08
          • 版權所有:
            云和教育
          • 分享:

           

          vue 是一個完全支持組件化開發的框架, 組件之間可以進行相互的引用。vue 中組件的引用原則:先注冊后使用。

          1. 組件的注冊

          組件之間可以進行相互的引用,例如:

          注冊組件的的方式:分為“全局注冊”和“局部注冊”兩種,其中:

          • 被全局注冊的組件,可以在全局任何一個組件內使用
          • 被局部注冊的組件,只能在當前注冊的范圍內使用

          1)全局注冊組件

          <dependency>
          <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId>
           import { createApp } from 'vue'
           import App from './App.vue'
           // 1.導入 Swiper 和 Test 兩個組件
           import Swiper from './components/MySwiper.vue'
           import Test from './components/MyTest.vue'
          
           const app = createApp(App)
          
          // 2.調用app實例的component()方法,在全局注冊my-swiper和my-test兩個組件
           app.component('my-swiper', Swiper)
           app.component('my-test', Test)
          
           app.mount('#app')

          2)使用全局注冊組件

          使用app.component() 方法注冊的全局組件,直接以標簽的形式進行使用即可,例如:

           

           //在 main.js中,注冊了my-swiper 和my-test兩個全局組件
           spa_app.component('my-swiper', Swiper)
           spa_app.component('my-test', Test)
          
           <--在其他組件中,直接以標簽的形式,使用剛才注冊的全局組件即可
           <template>
           <h1>這是App根組件</h1>
           <hr/>
           <my-swiper></my-swiper>
          
          <my-test></my-test>
           </template>

          3)局部注冊組件

          <template>
           <h1>這是App根組件</h1>
          
          <my-swiper></my-swiper>
          
          <my-search></my-search>
          
           </template>
          
           <script>
           import Search from './components/MySearch.vue'
           export default {
          components:{// 通過 components節點,為當前的組件注冊私有子組件
          
          'my-search': Search,
          
          
           },
          }
           </script>

          2.全局注冊和局部注冊的區別

          • 被全局注冊的組件,可以在全局任何一個組件內使用
          • 被局部注冊的組件,只能在當前注冊的范圍內使用

          應用場景: 如果某些組件在開發期間的使用頻率很高,推薦進行全局注冊;

          如果某些組件只在特定的情況下會被用到,推薦進行局部注冊。

          3.組件注冊時名稱的大小寫

          在進行組件的注冊時,定義組件注冊名稱的方式有兩種:

          ①使用kebab-case命名法(俗稱短橫線命名法,例如my-swiper 和my-search)

          ②使用PascalCase命名法(俗稱帕斯卡命名法或大駝峰命名法,例如MySwiper和MySearch)

          短橫線命名法的特點:

          必須嚴格按照短橫線名稱進行使用

          帕斯卡命名法的特點:

          既可以嚴格按照帕斯卡名稱進行使用,又可以轉化為短橫線名稱進行使用

          注意:在實際開發中,推薦使用帕斯卡命名法為組件注冊名稱,因為它的適用性更強。

          4.通過name 屬性注冊組件

          在注冊組件期間,除了可以直接提供組件的注冊名稱之外,還可以把組件的name 屬性作為注冊后組件的名稱,

          示例代碼如下:

          5.組件之間的樣式沖突問題

          默認情況下,寫在.vue 組件中的樣式會全局生效,因此很容易造成多個組件之間的樣式沖突問題。導致組件之間樣式沖突的根本原因是:

          單頁面應用程序中,所有組件的DOM 結構,都是基于唯一的index.html 頁面進行呈現的

          每個組件中的樣式,都會影響整個index.html 頁面中的DOM 元素