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

2:全局掛載在main.js之中
import Vue from 'vue'
import App from './App.vue'
import getTime from './component/child/getTime'
//全局注冊 整個(gè)項(xiàng)目的組件都可以使用
//注冊給整個(gè)vue 對象
//引入需要注冊的全局組件
//在vue類的方法 component里面進(jìn)行注冊
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>
//組件在誰里面使用 在誰里面注冊 這種注冊方式叫做局部注冊
//局部注冊只能在父組件里使用
import topTitle from "./component/systemtoptitle";
import leftMenu from "./component/systemleftmenu";
import rightContent from "./component/systemrightcontent";
//注冊組件
//注冊完成之后使用組件
export default {
name: "app",
components: {
//注冊
//常規(guī)寫法鍵值寫法
"v-toptitle": topTitle,
"v-leftmenu": leftMenu,
"v-rightcontent": rightContent
//簡單寫 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è)信息是后臺返回的
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 簡單寫法
//2 約束數(shù)據(jù)類型的寫法 如果數(shù)據(jù)類型不一致 會報(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 簡單寫法
//2 約束數(shù)據(jù)類型的寫法 如果數(shù)據(jù)類型不一致 會報(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è)信息是后臺返回的
name:"學(xué)生信息管理",
logo:"src/assets/logo.png"
}
},
methods: {
childsend(){
console.log("父組件里面的函數(shù)");
}
}
}
</script>
補(bǔ)充知識: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í)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue3實(shí)現(xiàn)在新標(biāo)簽中打開指定網(wǎng)址的方法
我希望點(diǎn)擊查看按鈕的時(shí)候,能夠在新的標(biāo)簽頁面打開這個(gè)文件的地址進(jìn)行預(yù)覽,該如何實(shí)現(xiàn)呢,下面小編給大家?guī)砹嘶趘ue3實(shí)現(xiàn)在新標(biāo)簽中打開指定的網(wǎng)址,感興趣的朋友跟隨小編一起看看吧2024-07-07
基于vue2的table分頁組件實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了基于vue2的table分頁組件實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03
Vue登錄頁面的動態(tài)粒子背景插件實(shí)現(xiàn)
本文主要介紹了Vue登錄頁面的動態(tài)粒子背景插件實(shí)現(xiàn),將登錄組件背景設(shè)置為 "粒子背景",具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
基于vue2框架的機(jī)器人自動回復(fù)mini-project實(shí)例代碼
本篇文章主要介紹了基于vue2框架的機(jī)器人自動回復(fù)mini-project實(shí)例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-06-06

