Vue中的組件及路由使用實(shí)例代碼詳解
1.組件是什么
組件系統(tǒng)是 Vue 的一個(gè)重要概念,因?yàn)樗且环N抽象,允許我們使用小型、獨(dú)立和通常可復(fù)用的組件構(gòu)建大型應(yīng)用。通常一個(gè)應(yīng)用會(huì)以一棵嵌套的組件樹的形式來(lái)組織;
1.1組件的聲明及使用
全局組件
<body> <div id="app"> <!-- 用全局組件的名稱作為HTML的標(biāo)簽 --> <myzujian></myzujian> </div> </body> <script> //設(shè)置全局組件 Vue.component("myzujian",{ template:"<h2>我是全局組件</h2>" }); var app=new Vue({ el:"#app", }); </script>
局部組件
<body> <div id="app"> <!-- 用局部組件的名稱作為HTML的標(biāo)簽 --> <zu-jian></zu-jian> </div> </body> <script> var app=new Vue({ el:"#app", components:{ zuJian:{ template:"<h1>我是局部組件</h1>", } } }); </script>
1.2組件使用注意事項(xiàng)
組件名如果是駝峰法命名,使用組件時(shí)要將大寫字母改為小寫,并且在前面加上 - 組件中的tamplate屬性必須有一個(gè)唯一的根元素,否則會(huì)報(bào)錯(cuò)
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父級(jí)組件傳值
<body> <div id="app"> <my :cc="msg"></my> </div> </body> <script> var app = new Vue({ el:'#app', data:{msg:'沒(méi)事干'}, 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">注冊(cè)</router-link> </li> </ul> <router-view></router-view> </div> </body> <script> // 獲取路由對(duì)象 var ro = new VueRouter({ // 定義路由規(guī)則 routes:[ // 具體匹配規(guī)則 // {path:匹配地址欄路由變化,component:要展示組件} {path:'/reg',component:{template:"<s>我是注冊(cè)</s>"}}, {path:'/login',component:{template:"<s>我是登錄</s>"}}, ] }) var app = new Vue({ el: '#app', data: {}, router:ro }) </script>
2.1動(dòng)態(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會(huì)為vue添加公有屬性 $route ,使用$route來(lái)獲取數(shù)據(jù) console.log(this.$route.params.id) }, template: "<s>就大師{{$route.params.id}}分離開國(guó)家</s>" } } ] }) var app = new Vue({ el: '#app', data: {}, router, }) </script>
總結(jié)
以上所述是小編給大家介紹的Vue中的組件及路由使用實(shí)例代碼詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
詳解vue項(xiàng)目構(gòu)建與實(shí)戰(zhàn)
這篇文章主要介紹了詳解vue項(xiàng)目構(gòu)建與實(shí)戰(zhàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06vue項(xiàng)目中運(yùn)用webpack動(dòng)態(tài)配置打包多種環(huán)境域名的方法
本人分享一個(gè)vue項(xiàng)目里,根據(jù)命令行輸入不同的命令,打包出不同環(huán)境域名的方法。需要的朋友跟隨小編一起看看吧2019-06-06Vue3+Tsx給路由加切換動(dòng)畫時(shí)的踩坑及解決
這篇文章主要介紹了Vue3+Tsx給路由加切換動(dòng)畫時(shí)的踩坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01Vue向后端傳數(shù)據(jù)后端接收為null問(wèn)題及解決
這篇文章主要介紹了Vue向后端傳數(shù)據(jù)后端接收為null問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09vue/cli和vue版本對(duì)應(yīng)及安裝方式
這篇文章主要介紹了vue/cli和vue版本對(duì)應(yīng)及安裝方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10vue刷新頁(yè)面后params參數(shù)丟失的原因和解決方法
這篇文章主要給大家介紹了vue刷新頁(yè)面后params參數(shù)丟失的原因和解決方法,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-12-12在vue項(xiàng)目中使用sass語(yǔ)法問(wèn)題
sass是一個(gè)最初由Hampton Catlin設(shè)計(jì)并由Natalie Weizenbaum開發(fā)的層疊樣式表語(yǔ)言。這篇文章主要介紹了在vue項(xiàng)目中使用sass語(yǔ)法,需要的朋友可以參考下2019-07-07