Vue 組件的掛載與父子組件的傳值實(shí)例
1:將需要掛載的組件放置在component之中

2:全局掛載在main.js之中
import Vue from 'vue'
import App from './App.vue'
import getTime from './component/child/getTime'
//全局注冊(cè) 整個(gè)項(xiàng)目的組件都可以使用
//注冊(cè)給整個(gè)vue 對(duì)象
//引入需要注冊(cè)的全局組件
//在vue類的方法 component里面進(jìn)行注冊(cè)
Vue.component('v-times',getTime);
Vue.component('v-times',{
template:"<div>{{msg}}</div>",//字符串的標(biāo)簽?zāi)0?
data(){ //當(dāng)前模板的數(shù)據(jù)
return {
msg:"時(shí)間"
}
}
});
new Vue({
el: '#app',
render: h => h(App)
})
3:局部掛載至當(dāng)前父組件之內(nèi)
<script>
//組件在誰里面使用 在誰里面注冊(cè) 這種注冊(cè)方式叫做局部注冊(cè)
//局部注冊(cè)只能在父組件里使用
import topTitle from "./component/systemtoptitle";
import leftMenu from "./component/systemleftmenu";
import rightContent from "./component/systemrightcontent";
//注冊(cè)組件
//注冊(cè)完成之后使用組件
export default {
name: "app",
components: {
//注冊(cè)
//常規(guī)寫法鍵值寫法
"v-toptitle": topTitle,
"v-leftmenu": leftMenu,
"v-rightcontent": rightContent
//簡(jiǎn)單寫 topTitle leftMenu rightContent
},
data() {
return {};
}
};
</script>
4:父組件傳值給子組件
父組件:
<template>
<div id="toptitle">
<!--logo子組件是toptitle的子組件-->
<!--子組件接收值-->
<v-logo :sysname="name"></v-logo>
</div>
</template>
<script>
import logo from './child/logo'
export default{
name:"toptitle ",
components:{
'v-logo':logo
},
data(){
return {
//比如下面的兩個(gè)信息是后臺(tái)返回的
name:"學(xué)生信息管理",
logo:"src/assets/logo.png"
}
}
}
</script>
子組件:
<template>
<div id="logoinfo">
<!--注意此處為:src-->
<img class="logoimg" :src="logoimg" alt=""/>
<span class="systemname">{{sysname}}</span>
</div>
</template>
<script>
export default {
//子組件調(diào)用父組件的值
//1 簡(jiǎn)單寫法
//2 約束數(shù)據(jù)類型的寫法 如果數(shù)據(jù)類型不一致 會(huì)報(bào)警告
//3 如果父組件沒有傳值 走默認(rèn)值
name: "logoinfo",
//props: ["logo", "sysname"],
/* props:{
'logoimg':String,
'sysname':String
}, */
props:{
'logoimg':{
type:String,
default:"src/assets/wanmou.jpg"
},
'sysname':String
},
data() {
return {
//子組件定義props屬性接收父組件傳遞的數(shù)據(jù)
};
}
};
</script>
5:子組件調(diào)用父組件的值
子組件:
<template>
<div id="logoinfo">
<!--注意此處為:src-->
<img class="logoimg" :src="logoimg" alt=""/>
<span class="systemname">{{sysname}}</span>
</div>
</template>
<script>
export default {
//子組件調(diào)用父組件的值
//1 簡(jiǎn)單寫法
//2 約束數(shù)據(jù)類型的寫法 如果數(shù)據(jù)類型不一致 會(huì)報(bào)警告
//3 如果父組件沒有傳值 走默認(rèn)值
name: "logoinfo",
//props: ["logo", "sysname"],
/* props:{
'logoimg':String,
'sysname':String
}, */
props:{
logoimg:{
type:String,
default:"src/assets/wanmou.jpg"
},
sysname:String,
parentinfo:Object
},
mounted() {
//1 在子組件里獲取整個(gè)父組件
//子組件執(zhí)行父組件的函數(shù)
//let parent=this.parentinfo;
//parent.childsend();
//2 子組件獲取父組件 內(nèi)置方法
let parentdata=this.$parent;
console.log(parentdata);
},
data() {
return {
//子組件定義props屬性接收父組件傳遞的數(shù)據(jù)
};
},
methods: {
sendmsg(){
console.log("子組件函數(shù)");
}
}
}
</script>
父組件:
<template>
<div id="toptitle">
<!--logo子組件是toptitle的子組件
//父組件獲取子組件的所有內(nèi)容
//使用ref獲取虛擬的dom來獲取子組件
-->
<!--子組件接收值-->
<v-logo :parentinfo="this" ref="logolist" :sysname="name"></v-logo>
</div>
</template>
<script>
import logo from './child/logo'
export default{
name:"toptitle",
components:{
'v-logo':logo
},
mounted() {
//組件掛載完的執(zhí)行函數(shù)
let logoinfo=this.$refs.logolist;
//獲取到的是整個(gè)子組件 父組件里面執(zhí)行子組件的方法
logoinfo.sendmsg();
},
data(){
return {
//比如下面的兩個(gè)信息是后臺(tái)返回的
name:"學(xué)生信息管理",
logo:"src/assets/logo.png"
}
},
methods: {
childsend(){
console.log("父組件里面的函數(shù)");
}
}
}
</script>
補(bǔ)充知識(shí):vue-router中的組件怎么傳遞參數(shù)
第一種方法params
{
path: '/user/:userid',
component: User
},
<template>
<div>
<h2>{{userid}}</h2> //
<h3>{{this.$route.params}}</h3>
</div>
</template>
<router-link :to='/user/+userid' tag="button">用戶</router-link>
<router-view></router-view>
export default {
name: 'App',
data() {
return {
userid: 'lisi'
}
}
}

第二種 query
{
path: '/profile',
component: Profile
}
<template>
<div>
<h2>我是Profile</h2>
<h3>{{this.$route.query}}</h3>
</div>
</template>
<router-link :to="{path: '/profile', query: {
name: 'hylls',
age: 20,
height: 1.77
}}" tag="button">profile</router-link>
<router-view></router-view>

以上這篇Vue 組件的掛載與父子組件的傳值實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3中實(shí)現(xiàn)歌詞滾動(dòng)顯示效果
本文分享如何在Vue 3中實(shí)現(xiàn)一個(gè)簡(jiǎn)單的歌詞滾動(dòng)效果,我將從歌詞數(shù)據(jù)的處理開始,一步步介紹布局的搭建和事件的實(shí)現(xiàn),感興趣的朋友跟隨小編一起看看吧2024-02-02
Vue中this.$router.push參數(shù)獲取方法
下面小編就為大家分享一篇Vue中this.$router.push參數(shù)獲取方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02
vue定時(shí)器清除不掉,導(dǎo)致功能頻繁執(zhí)行問題
這篇文章主要介紹了vue定時(shí)器清除不掉,導(dǎo)致功能頻繁執(zhí)行問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
vue?模板循環(huán)繪制多行上傳文件功能實(shí)現(xiàn)
這篇文章主要為大家介紹了vue?模板循環(huán)繪制多行上傳文件功能實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07

