±à¼ÍƼö: |
±¾ÎÄ̽ÌÖµÄÖ÷ÒªÎÊÌ⣺·ÓÉÊÇʲô£¿vue-routerÈçºÎʹÓ㿳£¼û·ÓɲÙ×÷ÓÐÄÄЩµÈ£¬Ï£Íû¶ÔÄúÄÜÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚjianshu,ÓÉ»ðÁú¹ûÈí¼þLuca±à¼ÍƼö¡£ |
|
Ò»¡¢Ç°ÑÔ
Ҫѧϰvue-router¾ÍÒªÏÈÖªµÀÕâÀïµÄ·ÓÉÊÇʲô£¿ÎªÊ²Ã´ÎÒÃDz»ÄÜÏñÔÀ´Ò»ÑùÖ±½ÓÓÃ<a></a>±êÇ©±àдÁ´½ÓÄÄ£¿vue-routerÈçºÎʹÓ㿳£¼û·ÓɲÙ×÷ÓÐÄÄЩ£¿µÈµÈÕâЩÎÊÌ⣬¾ÍÊDZ¾ÆªÒªÌ½ÌÖµÄÖ÷ÒªÎÊÌâ¡£

¶þ¡¢vue-routerÊÇʲô
ÕâÀïµÄ·Óɲ¢²»ÊÇÖ¸ÎÒÃÇÆ½Ê±Ëù˵µÄÓ²¼þ·ÓÉÆ÷£¬ÕâÀïµÄ·ÓɾÍÊÇSPA£¨µ¥Ò³Ó¦Ó㩵ķ¾¶¹ÜÀíÆ÷¡£ÔÙͨË×µÄ˵£¬vue-router¾ÍÊÇWebAppµÄÁ´½Ó·¾¶¹ÜÀíϵͳ¡£
vue-routerÊÇVue.js¹Ù·½µÄ·Óɲå¼þ£¬ËüºÍvue.jsÊÇÉî¶È¼¯³ÉµÄ£¬ÊʺÏÓÃÓÚ¹¹½¨µ¥Ò³ÃæÓ¦Óá£vueµÄµ¥Ò³ÃæÓ¦ÓÃÊÇ»ùÓÚ·ÓɺÍ×é¼þµÄ£¬Â·ÓÉÓÃÓÚÉ趨·ÃÎÊ·¾¶£¬²¢½«Â·¾¶ºÍ×é¼þÓ³ÉäÆðÀ´¡£´«Í³µÄÒ³ÃæÓ¦Óã¬ÊÇÓÃһЩ³¬Á´½ÓÀ´ÊµÏÖÒ³ÃæÇл»ºÍÌø×ªµÄ¡£ÔÚvue-routerµ¥Ò³ÃæÓ¦ÓÃÖУ¬ÔòÊÇ·¾¶Ö®¼äµÄÇл»£¬Ò²¾ÍÊÇ×é¼þµÄÇл»¡£Â·ÓÉÄ£¿éµÄ±¾ÖÊ
¾ÍÊǽ¨Á¢ÆðurlºÍÒ³ÃæÖ®¼äµÄÓ³Éä¹ØÏµ¡£
ÖÁÓÚÎÒÃÇΪɶ²»ÄÜÓÃa±êÇ©£¬ÕâÊÇÒòΪÓÃVue×öµÄ¶¼Êǵ¥Ò³Ó¦Ó㨵±ÄãµÄÏîĿ׼±¸´ò°üʱ£¬ÔËÐÐnpm run
buildʱ£¬¾Í»áÉú³ÉdistÎļþ¼Ð£¬ÕâÀïÃæÖ»Óо²Ì¬×ÊÔ´ºÍÒ»¸öindex.htmlÒ³Ãæ£©£¬ËùÒÔÄãдµÄ<a></a>±êÇ©ÊDz»Æð×÷Óõģ¬Äã±ØÐëʹÓÃvue-routerÀ´½øÐйÜÀí¡£
Èý¡¢vue-routerʵÏÖÔÀí
SPA(single page application):µ¥Ò»Ò³ÃæÓ¦ÓóÌÐò£¬Ö»ÓÐÒ»¸öÍêÕûµÄÒ³Ãæ£»ËüÔÚ¼ÓÔØÒ³ÃæÊ±£¬²»»á¼ÓÔØÕû¸öÒ³Ãæ£¬¶øÊÇÖ»¸üÐÂij¸öÖ¸¶¨µÄÈÝÆ÷ÖÐÄÚÈÝ¡£µ¥Ò³ÃæÓ¦ÓÃ(SPA)µÄºËÐÄÖ®Ò»ÊÇ:
¸üÐÂÊÓͼ¶ø²»ÖØÐÂÇëÇóÒ³Ãæ;vue-routerÔÚʵÏÖµ¥Ò³ÃæÇ°¶Ë·ÓÉʱ£¬ÌṩÁËÁ½ÖÖ·½Ê½£ºHashģʽºÍHistoryģʽ£»¸ù¾Ýmode²ÎÊýÀ´¾ö¶¨²ÉÓÃÄÄÒ»ÖÖ·½Ê½¡£
1¡¢Hashģʽ£º
vue-router ĬÈÏ hash ģʽ ¡ª¡ª ʹÓà URL µÄ hash À´Ä£ÄâÒ»¸öÍêÕûµÄ URL£¬ÓÚÊǵ±
URL ¸Ä±äʱ£¬Ò³Ãæ²»»áÖØÐ¼ÓÔØ¡£ hash£¨#£©ÊÇURL µÄêµã£¬´ú±íµÄÊÇÍøÒ³ÖеÄÒ»¸öλÖ㬵¥µ¥¸Ä±ä#ºóµÄ²¿·Ö£¬ä¯ÀÀÆ÷Ö»»á¹ö¶¯µ½ÏàӦλÖ㬲»»áÖØÐ¼ÓÔØÍøÒ³£¬Ò²¾ÍÊÇ˵hash
³öÏÖÔÚ URL ÖУ¬µ«²»»á±»°üº¬ÔÚ http ÇëÇóÖУ¬¶Ôºó¶ËÍêȫûÓÐÓ°Ï죬Òò´Ë¸Ä±ä hash ²»»áÖØÐ¼ÓÔØÒ³Ãæ£»Í¬Ê±Ã¿Ò»´Î¸Ä±ä#ºóµÄ²¿·Ö£¬¶¼»áÔÚä¯ÀÀÆ÷µÄ·ÃÎÊÀúÊ·ÖÐÔö¼ÓÒ»¸ö¼Ç¼£¬Ê¹ÓᱺóÍË¡±°´Å¥£¬¾Í¿ÉÒԻص½ÉÏÒ»¸öλÖã»ËùÒÔ˵Hashģʽͨ¹ýêµãÖµµÄ¸Ä±ä£¬¸ù¾Ý²»Í¬µÄÖµ£¬äÖȾָ¶¨DOMλÖõIJ»Í¬Êý¾Ý¡£hash
ģʽµÄÔÀíÊÇ onhashchange ʼþ(¼à²âhashÖµ±ä»¯)£¬¿ÉÒÔÔÚ window ¶ÔÏóÉϼàÌýÕâ¸öʼþ¡£
2¡¢Historyģʽ£º
ÓÉÓÚhashģʽ»áÔÚurlÖÐ×Ô´ø#£¬Èç¹û²»ÏëÒªºÜ³óµÄ hash£¬ÎÒÃÇ¿ÉÒÔÓ÷ÓÉµÄ history ģʽ£¬Ö»ÐèÒªÔÚÅäÖ÷ÓɹæÔòʱ£¬¼ÓÈë"mode:
'history'",ÕâÖÖģʽ³ä·ÖÀûÓÃÁËhtml5 history interface ÖÐÐÂÔöµÄ
pushState() ºÍ replaceState() ·½·¨¡£ÕâÁ½¸ö·½·¨Ó¦ÓÃÓÚä¯ÀÀÆ÷¼Ç¼ջ£¬ÔÚµ±Ç°ÒÑÓеÄ
back¡¢forward¡¢go »ù´¡Ö®ÉÏ£¬ËüÃÇÌṩÁ˶ÔÀúÊ·¼Ç¼Ð޸ĵŦÄÜ¡£Ö»Êǵ±ËüÃÇÖ´ÐÐÐÞ¸Äʱ£¬ËäÈ»¸Ä±äÁ˵±Ç°µÄ
URL £¬µ«ä¯ÀÀÆ÷²»»áÁ¢¼´Ïòºó¶Ë·¢ËÍÇëÇó¡£
//main.jsÎļþÖÐ
const router = new VueRouter({
mode: 'history',
routes: [...]
}) |
µ±ÄãʹÓà history ģʽʱ£¬URL ¾ÍÏñÕý³£µÄ url£¬ÀýÈç http://yoursite.com/user/id£¬±È½ÏºÃ¿´£¡
²»¹ýÕâÖÖÄ£Ê½ÒªÍæºÃ£¬»¹ÐèÒªºǫ́ÅäÖÃÖ§³Ö¡£ÒòΪÎÒÃǵÄÓ¦ÓÃÊǸöµ¥Ò³¿Í»§¶ËÓ¦Óã¬Èç¹ûºǫ́ûÓÐÕýÈ·µÄÅäÖ㬵±Óû§ÔÚä¯ÀÀÆ÷Ö±½Ó·ÃÎÊ
http://oursite.com/user/id ¾Í»á·µ»Ø 404£¬Õâ¾Í²»ºÃ¿´ÁË¡£
ËùÒÔÄØ£¬ÄãÒªÔÚ·þÎñ¶ËÔö¼ÓÒ»¸ö¸²¸ÇËùÓÐÇé¿öµÄºòÑ¡×ÊÔ´£ºÈç¹û URL
Æ¥Åä²»µ½Èκξ²Ì¬×ÊÔ´£¬ÔòÓ¦¸Ã·µ»ØÍ¬Ò»¸ö index.html Ò³Ãæ£¬Õâ¸öÒ³Ãæ¾ÍÊÇÄã app ÒÀÀµµÄÒ³Ãæ¡£
export const
routes = [
{path: "/", name: "homeLink",
component:Home}
{path: "/register", name: "registerLink",
component: Register},
{path: "/login", name: "loginLink",
component: Login},
{path: "*", redirect: "/"}] |
´Ë´¦¾ÍÉèÖÃÈç¹ûURLÊäÈë´íÎó»òÕßÊÇURL Æ¥Åä²»µ½Èκξ²Ì¬×ÊÔ´£¬¾Í×Ô¶¯Ìøµ½µ½HomeÒ³Ãæ
3¡¢Ê¹Ó÷ÓÉÄ£¿éÀ´ÊµÏÖÒ³ÃæÌø×ªµÄ·½Ê½
·½Ê½1£ºÖ±½ÓÐ޸ĵØÖ·À¸
·½Ê½2£ºthis.$router.push(¡®Â·ÓɵØÖ·¡¯)
·½Ê½3£º<router-link to="·ÓɵØÖ·"></router-link>
ËÄ¡¢vue-routerʹÓ÷½Ê½
1:ÏÂÔØ npm i vue-router -S
2:ÔÚmain.jsÖÐÒýÈë import VueRouter from 'vue-router';
3:°²×°²å¼þVue.use(VueRouter);
4:´´½¨Â·ÓɶÔÏó²¢ÅäÖ÷ÓɹæÔò let router = new VueRouter({routes:[{path:'/home',component:Home}]});
5:½«Æä·ÓɶÔÏ󴫵ݸøVueµÄʵÀý£¬optionsÖмÓÈë router:router
6:ÔÚapp.vueÖÐÁô¿Ó <router-view></router-view>
¾ßÌåʵÏÖÇë¿´ÈçÏ´úÂ룺
//main.jsÎļþÖÐÒýÈë
import Vue from 'vue';
import VueRouter from 'vue-router';
//Ö÷Ìå
import App from './components/app.vue';
import Home from './components/home.vue'
//°²×°²å¼þ
Vue.use(VueRouter); //¹ÒÔØÊôÐÔ
//´´½¨Â·ÓɶÔÏó²¢ÅäÖ÷ÓɹæÔò
let router = new VueRouter({
routes: [
//Ò»¸ö¸ö¶ÔÏó
{ path: '/home', component: Home }
]
});
//new Vue Æô¶¯
new Vue({
el: '#app',
//ÈÃvueÖªµÀÎÒÃǵÄ·ÓɹæÔò
router: router, //¿ÉÒÔ¼òдrouter
render: c => c(App),
}) |
×îºó¼ÇµÃÔÚÔÚapp.vueÖС°Áô¿Ó¡±
//app.vueÖÐ
<template> <div> <!-- Áô¿Ó£¬·Ç³£ÖØÒª
--> <router-view></router-view>
</div>
</template>
<script>
export default {
data(){
return {}
}
}
</script> |
Îå¡¢ vue-router²ÎÊý´«µÝ
ÉùÃ÷ʽµÄµ¼º½<router-link :to="...">ºÍ±à³ÌʽµÄµ¼º½router.push(...)¶¼¿ÉÒÔ´«²Î£¬±¾ÎÄÖ÷Òª½éÉÜǰÕߵĴ«²Î·½·¨£¬Í¬ÑùµÄ¹æÔòÒ²ÊÊÓÃÓÚ±à³ÌʽµÄµ¼º½¡£
1.ÓÃname´«µÝ²ÎÊý
ÔÚ·ÓÉÎļþsrc/router/index.jsÀïÅäÖÃnameÊôÐÔ
routes: [
{
path: '/',
name: 'Hello',
component: Hello
}
] |
Ä£°åÀï(src/App.vue)ÓÃ$route.nameÀ´½ÓÊÕ ±ÈÈ磺<p>{{ $route.name}}</p>
2 ͨ¹ý<router-link> ±êÇ©ÖеÄto´«²Î
ÕâÖÖ´«²Î·½·¨µÄ»ù±¾Óï·¨£º
<router-link
:to="{name:xxx,params:{key:value}}">valueString</router-link> |
±ÈÈçÏÈÔÚsrc/App.vueÎļþÖÐ
<router-link
:to="{name:'hi1',params:{username:'jspang',id:'555'}}">HiÒ³Ãæ1</router-link> |
È»ºó°Ñsrc/router/index.jsÎļþÀï¸øhi1ÅäÖõÄ·ÓÉÆð¸öname,¾Í½Ðhi1.
{path:'/hi1',name:'hi1',component:Hi1} |
×îºóÔÚÄ£°åÀï(src/components/Hi1.vue)ÓÃ$route.params.username½øÐнÓÊÕ.
{{$route.params.username}}-{{$route.params.id}} |
3 ÀûÓÃurl´«µÝ²ÎÊý----ÔÚÅäÖÃÎļþÀïÒÔðºÅµÄÐÎʽÉèÖòÎÊý¡£
ÎÒÃÇÔÚ/src/router/index.jsÎļþÀïÅäÖ÷ÓÉ
{
path:'/params/:newsId/:newsTitle',
component:Params
} |
ÎÒÃÇÐèÒª´«µÝ²ÎÊýÊÇÐÂÎÅID£¨newsId£©ºÍÐÂÎűêÌ⣨newsTitle£©.ËùÒÔÎÒÃÇÔÚ·ÓÉÅäÖÃÎļþÀïÖÆ¶¨ÁËÕâÁ½¸öÖµ¡£
ÔÚsrc/componentsĿ¼Ï½¨Á¢ÎÒÃÇparams.vue×é¼þ£¬Ò²¿ÉÒÔ˵ÊÇÒ³Ãæ¡£ÎÒÃÇÔÚÒ³ÃæÀïÊä³öÁËurl´«µÝµÄµÄÐÂÎÅIDºÍÐÂÎűêÌâ¡£
<template>
<div> <h2>{{ msg }}</h2>
<p>ÐÂÎÅID£º{{ $route.params.newsId}}</p>
<p>ÐÂÎűêÌ⣺{{ $route.params.newsTitle}}</p>
</div>
</template>
<script>
export default {
name: 'params',
data () {
return {
msg: 'params page'
}
}
}
</script> |
ÔÚApp.vueÎļþÀï¼ÓÈëÎÒÃǵÄ<router-view>±êÇ©¡£ÕâʱºòÎÒÃÇ¿ÉÒÔÖ±½ÓÀûÓÃurl´«ÖµÁË
<router-link
to="/params/198/jspang website is very good">params</router-link> |
4. ʹÓÃpathÀ´Æ¥Åä·ÓÉ£¬È»ºóͨ¹ýqueryÀ´´«µÝ²ÎÊý
<router-link
:to="{ name:'Query',query: { queryId: status
}}" >
router-linkÌø×ªQuery
</router-link> |
¶ÔӦ·ÓÉÅäÖãº
{
path: '/query',
name: 'Query',
component: Query
} |
ÓÚÊÇÎÒÃÇ¿ÉÒÔ»ñÈ¡²ÎÊý£º
this.$route.query.queryId |
Áù¡¢vue-routerÅäÖÃ×Ó·ÓÉ(¶þ¼¶Â·ÓÉ)
ʵ¼ÊÉú»îÖеÄÓ¦ÓýçÃæ£¬Í¨³£Óɶà²ãǶÌ×µÄ×é¼þ×éºÏ¶ø³É¡£Í¬ÑùµØ£¬URLÖи÷¶Î¶¯Ì¬Â·¾¶Ò²°´Ä³Öֽṹ¶ÔӦǶÌ׵ĸ÷²ã×é¼þ£¬ÀýÈ磺

ÈçºÎʵÏÖÏÂͼЧ¹û(H1Ò³ÃæºÍH2Ò³ÃæÇ¶Ì×ÔÚÖ÷Ò³ÖÐ)£¿

1.Ê×ÏÈÓÃ<router-link>±êÇ©Ôö¼ÓÁËÁ½¸öеĵ¼º½Á´½Ó
<router-link
:to="{name:'HelloWorld'}">Ö÷Ò³</router-link>
<router-link :to="{name:'H1'}">H1Ò³Ãæ</router-link>
<router-link :to="{name:'H2'}">H2Ò³Ãæ</router-link> |
2.ÔÚHelloWorld.vue¼ÓÈë<router-view>±êÇ©£¬¸ø×ÓÄ£°åÌṩ²åÈëλÖÃ
<template>
<div class="hello"> <h1>{{
msg }}</h1> <router-view></router-view>
</div>
</template> |
3.ÔÚcomponentsĿ¼ÏÂн¨Á½¸ö×é¼þÄ£°å H1.vue ºÍ H2.vue
Á½ÕßÄÚÈÝÀàËÆ£¬ÒÔÏÂÊÇH1.vueÒ³ÃæÄÚÈÝ£º
<template>
<div class="hello"> <h1>{{
msg }}</h1> </div>
</template>
<script>
export default {
data() {
return {
msg: 'I am H1 page,Welcome to H1'
}
}
}
</script> |
4.ÐÞ¸Ärouter/index.js´úÂ룬×Ó·ÓɵÄд·¨ÊÇÔÚÔÓеÄ·ÓÉÅäÖÃϼÓÈëchildren×ֶΡ£
routes: [
{
path: '/',
name: 'HelloWorld',
component: HelloWorld,
children: [{path: '/h1', name: 'H1', component:
H1},//×Ó·ÓɵÄ<router-view>±ØÐëÔÚHelloWorld.vueÖгöÏÖ
{path: '/h2', name: 'H2', component: H2}
]
}
] |
Æß¡¢µ¥Ò³Ãæ¶à·ÓÉÇøÓò²Ù×÷
ÔÚÒ»¸öÒ³ÃæÀïÎÒÃÇÓÐÁ½¸öÒÔÉÏ<router-view>ÇøÓò£¬ÎÒÃÇͨ¹ýÅäÖ÷ÓɵÄjsÎļþ£¬À´²Ù×÷ÕâÐ©ÇøÓòµÄÄÚÈÝ
1.App.vueÎļþ£¬ÔÚ<router-view>ÏÂÃæÐÂдÁËÁ½ÐÐ<router-view>±êÇ©,²¢¼ÓÈëÁËЩCSSÑùʽ
<template>
<div id="app"> <img src="./assets/logo.png">
<router-link :to="{name:'HelloWorld'}"><h1>H1</h1></router-link>
<router-link :to="{name:'H1'}"><h1>H2</h1></router-link>
<router-view></router-view> <router-view
name="left" style="float:left;width:50%;background-color:#ccc;height:300px;"/>
<router-view name="right" style="float:right;width:50%;background-color:yellowgreen;height:300px;"/>
</div>
</template> |
2.ÐèÒªÔÚ·ÓÉÀïÅäÖÃÕâÈý¸öÇøÓò£¬ÅäÖÃÖ÷ÒªÊÇÔÚcomponents×Ö¶ÎÀï½øÐÐ
export default
new Router({
routes: [
{
path: '/',
name: 'HelloWorld',
components: {default: HelloWorld,
left:H1,//ÏÔʾH1×é¼þÄÚÈÝ'I am H1 page,Welcome to H1'
right:H2//ÏÔʾH2×é¼þÄÚÈÝ'I am H2 page,Welcome to H2'
}
},
{
path: '/h1',
name: 'H1',
components: {default: HelloWorld,
left:H2,//ÏÔʾH2×é¼þÄÚÈÝ
right:H1//ÏÔʾH1×é¼þÄÚÈÝ
}
}
]
}) |
ÉϱߵĴúÂëÎÒÃDZàдÁËÁ½¸ö·¾¶£¬Ò»¸öÊÇĬÈϵġ®/¡¯£¬ÁíÒ»¸öÊÇ¡®/Hi¡¯.ÔÚÁ½¸ö·¾¶ÏµÄcomponentsÀïÃæ£¬ÎÒÃǶÔÈý¸öÇøÓò¶¼¶¨ÒåÁËÏÔʾÄÚÈÝ¡£×îºóÒ³ÃæÕ¹Ê¾ÈçÏÂͼ£º

°Ë.$route ºÍ $router µÄÇø±ð
ÎÒÃÇÏȽ«ÕâÁ½Õßconsole.log´òÓ¡³öÀ´£º


$route ÊÇ¡°Â·ÓÉÐÅÏ¢¶ÔÏó¡±£¬°üÀ¨ path£¬params£¬hash£¬query£¬fullPath£¬matched£¬name
µÈ·ÓÉÐÅÏ¢²ÎÊý¡£
¢Ù $route.path
×Ö·û´®£¬¶ÔÓ¦µ±Ç°Â·ÓɵÄ·¾¶£¬×ÜÊǽâÎöΪ¾ø¶Ô·¾¶£¬Èç "/order"¡£
¢Ú $route.params
Ò»¸ö key/value ¶ÔÏ󣬰üº¬ÁË ¶¯Ì¬Æ¬¶Î ºÍ ȫƥÅ䯬¶Î£¬
Èç¹ûûÓзÓɲÎÊý£¬¾ÍÊÇÒ»¸ö¿Õ¶ÔÏó¡£
¢Û $route.query
Ò»¸ö key/value ¶ÔÏ󣬱íʾ URL ²éѯ²ÎÊý¡£
ÀýÈ磬¶ÔÓÚ·¾¶ /foo?user=1£¬ÔòÓÐ $route.query.userΪ1£¬
Èç¹ûûÓвéѯ²ÎÊý£¬ÔòÊǸö¿Õ¶ÔÏó¡£
¢Ü $route.hash
µ±Ç°Â·ÓÉµÄ hash Öµ (²»´ø #) £¬Èç¹ûûÓÐ hash Öµ£¬ÔòΪ¿Õ×Ö·û´®¡£
¢Ý $route.fullPath
Íê³É½âÎöºóµÄ URL£¬°üº¬²éѯ²ÎÊýºÍ hash µÄÍêÕû·¾¶¡£
¢Þ $route.matched
Êý×飬°üº¬µ±Ç°Æ¥ÅäµÄ·¾¶ÖÐËù°üº¬µÄËùÓÐÆ¬¶ÎËù¶ÔÓ¦µÄÅäÖòÎÊý¶ÔÏó¡£
¢ß $route.name µ±Ç°Â·¾¶Ãû×Ö
$router ÊÇ¡°Â·ÓÉʵÀý¡±¶ÔÏ󣬼´Ê¹Óà new VueRouter´´½¨µÄʵÀý£¬°üÀ¨ÁË·ÓɵÄÌø×ª·½·¨£¬¹³×Óº¯ÊýµÈ¡£
$router³£¼ûÌø×ª·½·¨:
<button @click="goToMenu"
class="btn btn-success">Let's order£¡</button>
.....
<script>
export default{
methods:{
goToMenu(){
this.$router.go(-1)//Ìø×ªµ½ÉÏÒ»´Îä¯ÀÀµÄÒ³Ãæ
this.$router.replace('/menu')//Ö¸¶¨Ìø×ªµÄµØÖ·
this.$router.replace({name:'menuLink'})//Ö¸¶¨Ìø×ªÂ·ÓɵÄÃû×ÖÏÂ
this.$router.push('/menu')//ͨ¹ýpush½øÐÐÌø×ª
this.$router.push({name:'menuLink'})//ͨ¹ýpush½øÐÐÌø×ªÂ·ÓɵÄÃû×ÖÏÂ
}
}
}
</script> |
$router.pushºÍ$router.replaceµÄÇø±ð£º
ʹÓÃpush·½·¨µÄÌø×ª»áÏò history Õ»Ìí¼ÓÒ»¸öеļǼ£¬µ±ÎÒÃǵã»÷ä¯ÀÀÆ÷µÄ·µ»Ø°´Å¥Ê±¿ÉÒÔ¿´µ½Ö®Ç°µÄÒ³Ãæ¡£
ʹÓÃreplace·½·¨²»»áÏò history Ìí¼ÓмǼ£¬¶øÊÇÌæ»»µôµ±Ç°µÄ history ¼Ç¼£¬¼´µ±replaceÌø×ªµ½µÄÍøÒ³ºó£¬¡®ºóÍË¡¯°´Å¥²»Äܲ鿴֮ǰµÄÒ³Ãæ¡£
¾Å¡¢ ÈçºÎÉèÖÃ404Ò³Ãæ
Óû§»á¾³£Êä´íÒ³Ãæ£¬µ±Óû§Êä´íÒ³ÃæÊ±£¬ÎÒÃÇÏ£Íû¸øËûÒ»¸öÓѺõÄÌáÊ¾Ò³Ãæ£¬Õâ¸öÒ³Ãæ¾ÍÊÇÎÒÃdz£ËµµÄ404Ò³Ãæ¡£vue-routerҲΪÎÒÃÇÌṩÁËÕâÑùµÄ»úÖÆ¡£
ÉèÖÃÎÒÃǵÄ·ÓÉÅäÖÃÎļþ£¨/src/router/index.js£©
{
path:'*',
component:Error
} |
ÕâÀïµÄpath:'*'¾ÍÊÇÊäÈëµØÖ·²»Æ¥Åäʱ£¬×Ô¶¯ÏÔʾ³öError.vueµÄÎļþÄÚÈÝ
ÔÚ/src/components/Îļþ¼ÐÏÂн¨Ò»¸öError.vueµÄÎļþ¡£¼òµ¥ÊäÈëһЩÓйشíÎóÒ³ÃæµÄÄÚÈÝ¡£
<template>
<div> <h2>{{ msg }}</h2>
</div>
</template>
<script>
export default {
data () {
return {
msg: 'Error:404'
}
}
}
</script> |
´ËʱÎÒÃÇËæÒâÊäÈëÒ»¸ö´íÎóµÄµØÖ·Ê±£¬±ã»á×Ô¶¯Ìø×ªµ½404Ò³Ãæ
|