Vue中的組件及路由使用實例代碼詳解
1.組件是什么
組件系統(tǒng)是 Vue 的一個重要概念,因為它是一種抽象,允許我們使用小型、獨立和通??蓮?fù)用的組件構(gòu)建大型應(yīng)用。通常一個應(yīng)用會以一棵嵌套的組件樹的形式來組織;
1.1組件的聲明及使用
全局組件
<body>
<div id="app">
<!-- 用全局組件的名稱作為HTML的標簽 -->
<myzujian></myzujian>
</div>
</body>
<script>
//設(shè)置全局組件
Vue.component("myzujian",{
template:"<h2>我是全局組件</h2>"
});
var app=new Vue({
el:"#app",
});
</script>
局部組件
<body>
<div id="app">
<!-- 用局部組件的名稱作為HTML的標簽 -->
<zu-jian></zu-jian>
</div>
</body>
<script>
var app=new Vue({
el:"#app",
components:{
zuJian:{
template:"<h1>我是局部組件</h1>",
}
}
});
</script>
1.2組件使用注意事項
組件名如果是駝峰法命名,使用組件時要將大寫字母改為小寫,并且在前面加上 - 組件中的tamplate屬性必須有一個唯一的根元素,否則會報錯
1.3組件中數(shù)據(jù)及方法
<body>
<div id="app">
<mytemp></mytemp>
</div>
</body>
<script>
var app=new Vue({
el:"#app",
data:{},
components:{
mytemp:{
data(){
return {
msg:"123456789",
}
},
methods: {
cli(){
alert(this.msg);
}
},
template:'<h1 @click="cli">you{{msg}} very good</h1>',
}
}
});
</script>
1.4父級組件傳值
<body>
<div id="app">
<my :cc="msg"></my>
</div>
</body>
<script>
var app = new Vue({
el:'#app',
data:{msg:'沒事干'},
components:{
my:{
props:['cc'],
template:"<s>{{cc}}</s>"
}
}
})
</script>
2.路由的使用
Vue在使用路由插件Vue-router,要提前引入。
<body>
<div id="app">
<ul>
<li> <router-link to="/login">登錄</router-link> </li>
<li> <router-link to="/reg">注冊</router-link> </li>
</ul>
<router-view></router-view>
</div>
</body>
<script>
// 獲取路由對象
var ro = new VueRouter({
// 定義路由規(guī)則
routes:[
// 具體匹配規(guī)則
// {path:匹配地址欄路由變化,component:要展示組件}
{path:'/reg',component:{template:"<s>我是注冊</s>"}},
{path:'/login',component:{template:"<s>我是登錄</s>"}},
]
})
var app = new Vue({
el: '#app',
data: {},
router:ro
})
</script>
2.1動態(tài)路由匹配
<body>
<div id="app">
<!-- 傳遞數(shù)據(jù)直接寫在 / 后面 -->
<router-link to="/user/10">hfhg</router-link>
<router-view></router-view>
</div>
</body>
<script>
var router = new VueRouter({
routes: [
{
// 獲取數(shù)據(jù)是變量的名字前面加:
path: "/user/:id", component: {
mounted(){
// router會為vue添加公有屬性 $route ,使用$route來獲取數(shù)據(jù)
console.log(this.$route.params.id)
},
template: "<s>就大師{{$route.params.id}}分離開國家</s>"
}
}
]
})
var app = new Vue({
el: '#app',
data: {},
router,
})
</script>
總結(jié)
以上所述是小編給大家介紹的Vue中的組件及路由使用實例代碼詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
解決Element組件的坑:抽屜drawer和彈窗dialog
這篇文章主要介紹了解決Element組件的坑:抽屜drawer和彈窗dialog問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
vue組件文檔(.md)中如何自動導(dǎo)入示例(.vue)詳解
這篇文章主要給大家介紹了關(guān)于vue組件文檔(.md)中如何自動導(dǎo)入示例(.vue)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
vue的.vue文件是怎么run起來的(vue-loader)
通過vue-loader,解析.vue文件,在webpack解析,拆解vue組件 ,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下2018-12-12
Vue2?Dialog彈窗函數(shù)式調(diào)用實踐示例
這篇文章主要為大家介紹了Vue2?Dialog彈窗函數(shù)式調(diào)用實踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
vue同一個瀏覽器登錄不同賬號數(shù)據(jù)覆蓋問題解決方案
同一個瀏覽器登錄不同賬號session一致,這就導(dǎo)致后面登錄的用戶數(shù)據(jù)會把前面登錄的用戶數(shù)據(jù)覆蓋掉,這個問題很常見,當前我這邊解決的就是同一個瀏覽器不同窗口只能登錄一個用戶,對vue同一個瀏覽器登錄不同賬號數(shù)據(jù)覆蓋問題解決方法感興趣的朋友一起看看吧2024-01-01

