vue全局組件與局部組件使用方法詳解
vue全局/局部注冊(cè),以及一些混淆的組件
main.js入口文件的一些常用配置, 在入口文件上定義的public.vue為全局組件,在這里用的是pug模版 .wraper 的形式相當(dāng)于<div class=wraper></div>
—main.js文件
**main.js入口文件的內(nèi)容**
import Vue from 'vue'
import App from './App'
import router from './router'
// 引入公用組件的vue文件 他暴漏的是一個(gè)對(duì)象
import cpublic from './components/public'
Vue.config.productionTip = false
// 注冊(cè)全局組件-要在vue的根事咧之前
// 參數(shù) 1是標(biāo)簽名字-string 2是對(duì)象 引入外部vue文件就相當(dāng)與一個(gè)對(duì)象
Vue.component('public', cpublic)
// 正常注冊(cè)全局組件的時(shí)候,第二個(gè)參數(shù)應(yīng)該是對(duì)象。
Vue.component('public1', {
template: '<div>正常的組件模式</div>'
})
/* eslint-disable no-new */
// 生成vue 的根實(shí)例;創(chuàng)建每個(gè)組件都會(huì)生成一個(gè)vue的事咧
new Vue({
el: '#app',
router,
template: '<App/>',
components: { App }
})
—public.vue 組件為定義的全局組件在任何組件里都可以直接使用,不需要在vue實(shí)例選項(xiàng)components上在次定義,也不需要再次導(dǎo)入文件路徑。
**public.vue的組件內(nèi)容**
<template lang="pug">
.wrapper
slot(text="我是全局組件") {{name}}
</template>
<script>
export default {
name: 'HelloWor',
// 全局組件里data屬性必須是函數(shù),這樣才會(huì)獨(dú)立,
// 在組件改變狀態(tài)的時(shí)候不會(huì)影響其他組件里公用的這個(gè)狀態(tài)
data () {
return {
name: '我是全局組件'
}
}
}
</script>
<style scoped>
</style>
在parent.vue組件里,用到了public全局組件以及其他的子組件
parent.vue組件
<template lang="pug">
.wrap
.input-hd
.title 名稱:
input.input(type="text",v-model="msg",placeholder="請(qǐng)輸入正確的值",style="outline:none;")
.content-detail
.content-name 我是父組件的內(nèi)容
children(:msg='msg', number='1')
public
router-link(to='/parent/children2') 第二個(gè)子組件
router-view
</template>
<script>
import children from './children'
// children(:msg='msg', number='1')在組件里 也可以傳遞自定義的屬性,但是是字符串類型,
export default {
name: 'HelloWor',
data () {
return {
// 通過prop將數(shù)據(jù)傳遞到子組件,并與v-model想對(duì)應(yīng)的輸入框相互綁定。
msg: '這個(gè)是父組件的-prop-數(shù)據(jù)'
}
},
components: {
children
}
}
</script>
<style scoped>
.wrap {
}
.input-hd {
display: flex;
flex-direction: row;
align-items: center;
height: 70px;
}
</style>
children.vue是parent.vue的子組件,但是只在parent.vue作用域里可用
<template lang="pug">
.wrapper
slot(text="我是子組件的text") 我是子組件的內(nèi)容
.name {{ msg }} {{ number }}
</template>
<script>
export default {
name: 'HelloWor',
// 接受的時(shí)候是用props接受,數(shù)組的形式,里面是字符串的形式。
// 也可以傳入普通的字符串
// 在子組件中,props接受到的狀態(tài)當(dāng)作vue的實(shí)例屬性來使用
props: [ 'msg', 'number' ]
}
</script>
<style scoped>
</style>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue中動(dòng)態(tài)引入圖片要是require的原因解析
require是一個(gè)node方法,用于引入模塊,JSON或本地文件,這篇文章主要介紹了vue中動(dòng)態(tài)引入圖片為什么要是require,需要的朋友可以參考下2022-10-10
Vue3?路由配置與導(dǎo)航實(shí)戰(zhàn)教程
Vue?Router?提供了強(qiáng)大的路由管理能力,幫助開發(fā)者輕松構(gòu)建流暢、高效的單頁(yè)應(yīng)用,本文將帶你深入探討?Vue3?中的路由配置與導(dǎo)航操作,從安裝到實(shí)戰(zhàn),手把手教你掌握?Vue?Router?的使用技巧,需要的朋友可以參考下2025-03-03
vue項(xiàng)目使用js監(jiān)聽瀏覽器關(guān)閉、刷新及后退事件的方法
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目使用js監(jiān)聽瀏覽器關(guān)閉、刷新及后退事件的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
Vue3+Vite實(shí)現(xiàn)一個(gè)Markdown編輯器組件
在現(xiàn)代前端開發(fā)中,Markdown 編輯器廣泛應(yīng)用于博客,文檔,Wiki,代碼注釋等場(chǎng)景,本文將使用 Vue 3 構(gòu)建一個(gè)簡(jiǎn)單的 Markdown 編輯器組件,感興趣的小伙伴可以了解下2025-04-04
Vue iframe更改src后頁(yè)面未刷新問題解決方法
這篇文章主要介紹了Vue iframe更改src后頁(yè)面未刷新問題解決,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04
基于Vue3實(shí)現(xiàn)一個(gè)簡(jiǎn)單的雪花漂浮效果
隨著冬季的到來,許多網(wǎng)站和應(yīng)用程序都會(huì)添加一些節(jié)日氛圍的元素,比如雪花飄落的效果,本文將教你如何在 Vue 3 中實(shí)現(xiàn)一個(gè)簡(jiǎn)單的雪花漂浮效果,為你的網(wǎng)頁(yè)增添一絲冬日的浪漫,感興趣的小伙伴跟著小編一起來看看吧2025-01-01
vue+css如何實(shí)現(xiàn)圓環(huán)漸變儀表盤
這篇文章主要介紹了vue+css如何實(shí)現(xiàn)圓環(huán)漸變儀表盤問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08

