更新時間:2022年11月25日12時38分 來源:傳智教育 瀏覽次數(shù):
vue 是一個完全支持組件化開發(fā)的框架, 組件之間可以進(jìn)行相互的引用。vue 中組件的引用原則:先注冊后使用。
組件之間可以進(jìn)行相互的引用,例如:
注冊組件的的方式:分為“全局注冊”和“局部注冊”兩種,其中:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> import { createApp } from 'vue' import App from './App.vue' // 1.導(dǎo)入 Swiper 和 Test 兩個組件 import Swiper from './components/MySwiper.vue' import Test from './components/MyTest.vue' const app = createApp(App) // 2.調(diào)用app實例的component()方法,在全局注冊my-swiper和my-test兩個組件 app.component('my-swiper', Swiper) app.component('my-test', Test) app.mount('#app')
//在 main.js中,注冊了my-swiper 和my-test兩個全局組件 spa_app.component('my-swiper', Swiper) spa_app.component('my-test', Test) <!--在其他組件中,直接以標(biāo)簽的形式,使用剛才注冊的全局組件即可 <template> <h1>這是App根組件</h1> <hr/> <my-swiper></my-swiper> <my-test></my-test> </template>
<template> <h1>這是App根組件</h1> <my-swiper></my-swiper> <my-search></my-search> </template> <script> import Search from './components/MySearch.vue' export default { components:{// 通過 components節(jié)點,為當(dāng)前的組件注冊私有子組件 'my-search': Search, }, } </script>
應(yīng)用場景: 如果某些組件在開發(fā)期間的使用頻率很高,推薦進(jìn)行全局注冊;
如果某些組件只在特定的情況下會被用到,推薦進(jìn)行局部注冊。
在進(jìn)行組件的注冊時,定義組件注冊名稱的方式有兩種:
①使用kebab-case命名法(俗稱短橫線命名法,例如my-swiper 和my-search)
②使用PascalCase命名法(俗稱帕斯卡命名法或大駝峰命名法,例如MySwiper和MySearch)
短橫線命名法的特點:
必須嚴(yán)格按照短橫線名稱進(jìn)行使用
帕斯卡命名法的特點:
既可以嚴(yán)格按照帕斯卡名稱進(jìn)行使用,又可以轉(zhuǎn)化為短橫線名稱進(jìn)行使用
注意:在實際開發(fā)中,推薦使用帕斯卡命名法為組件注冊名稱,因為它的適用性更強(qiáng)。
在注冊組件期間,除了可以直接提供組件的注冊名稱之外,還可以把組件的name 屬性作為注冊后組件的名稱,
示例代碼如下:
默認(rèn)情況下,寫在.vue 組件中的樣式會全局生效,因此很容易造成多個組件之間的樣式?jīng)_突問題。導(dǎo)致組件之間樣式?jīng)_突的根本原因是:
單頁面應(yīng)用程序中,所有組件的DOM 結(jié)構(gòu),都是基于唯一的index.html 頁面進(jìn)行呈現(xiàn)的
每個組件中的樣式,都會影響整個index.html 頁面中的DOM 元素