Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
´ÓÍ·¿ªÊ¼Ñ§Ï°vue-router
 
×÷ÕߣºÀËÀïÐÐÖÛ
  2230  次浏览      27
  2020-1-7
 
±à¼­ÍƼö:
±¾ÎÄ̽ÌÖµÄÖ÷ÒªÎÊÌ⣺·ÓÉÊÇʲô£¿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Ò³Ãæ

 
   
2230 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì