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 名稱(chēng): 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')在組件里 也可以傳遞自定義的屬性,但是是字符串類(lèi)型, export default { name: 'HelloWor', data () { return { // 通過(guò)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í)例屬性來(lái)使用 props: [ 'msg', 'number' ] } </script> <style scoped> </style>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
VUE中如何調(diào)用高德地圖獲取當(dāng)前位置(VUE2.0和3.0通用)
使用uniapp開(kāi)發(fā)微信小程序時(shí),多多少少會(huì)遇到獲取當(dāng)前位置的詳細(xì)信息,下面這篇文章主要給大家介紹了關(guān)于VUE中如何調(diào)用高德地圖獲取當(dāng)前位置(VUE2.0和3.0通用)的相關(guān)資料,需要的朋友可以參考下2023-04-04vue.js實(shí)現(xiàn)含搜索的多種復(fù)選框(附源碼)
這篇文章主要給大家介紹了利用vue.js實(shí)現(xiàn)含搜索的多種復(fù)選框的相關(guān)資料,文中給出了簡(jiǎn)單的介紹,但提供了完整的實(shí)例源碼供大家下載學(xué)習(xí),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03vue清空數(shù)組的幾個(gè)方式(小結(jié))
本文主要介紹了vue清空數(shù)組的幾個(gè)方式,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12vue動(dòng)態(tài)路由:路由參數(shù)改變,視圖不更新問(wèn)題的解決
今天小編就為大家分享一篇vue動(dòng)態(tài)路由:路由參數(shù)改變,視圖不更新問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11vue單頁(yè)應(yīng)用的內(nèi)存泄露定位和修復(fù)問(wèn)題小結(jié)
系統(tǒng)進(jìn)程不再用到的內(nèi)存,沒(méi)有及時(shí)釋放,就叫做內(nèi)存泄漏(memory leak)。這篇文章主要介紹了vue單頁(yè)應(yīng)用的內(nèi)存泄露定位和修復(fù),需要的朋友可以參考下2019-08-08vue-extend和vue-component注冊(cè)一個(gè)全局組件方式
這篇文章主要介紹了vue-extend和vue-component注冊(cè)一個(gè)全局組件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11詳解vue中$nextTick和$forceUpdate的用法
這篇文章主要介紹了詳解vue中$nextTick和$forceUpdate的用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12