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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
vue-router »ù±¾Ê¹ÓÃ
 
×÷ÕߣºSamWeb
  1763  次浏览      27
  2019-12-25
 
±à¼­ÍƼö:
±¾ÎĽ²ÁË·ÓÉÖÐÓÐÈý¸ö»ù±¾µÄ¸ÅÄî route, routes, router£¬¶¯Ì¬Â·ÓÉ£¬Ç¶Ì×·ÓÉ¡£Ï£Íû¶ÔÄúÄÜÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚcnblogs,ÓÉ»ðÁú¹ûÈí¼þDelores±à¼­ÍƼö¡£

·ÓÉ£¬Æäʵ¾ÍÊÇÖ¸ÏòµÄÒâ˼£¬µ±ÎÒµã»÷Ò³ÃæÉϵÄhome°´Å¥Ê±£¬Ò³ÃæÖоÍÒªÏÔʾhomeµÄÄÚÈÝ£¬Èç¹ûµã»÷Ò³ÃæÉϵÄabout °´Å¥£¬Ò³ÃæÖоÍÒªÏÔʾabout µÄÄÚÈÝ¡£Home°´Å¥ => home ÄÚÈÝ£¬ about°´Å¥ => about ÄÚÈÝ£¬Ò²¿ÉÒÔ˵ÊÇÒ»ÖÖÓ³Éä. ËùÒÔÔÚÒ³ÃæÉÏÓÐÁ½¸ö²¿·Ö£¬Ò»¸öÊǵã»÷²¿·Ö£¬Ò»¸öÊǵã»÷Ö®ºó£¬ÏÔʾÄÚÈݵIJ¿·Ö¡£

µã»÷Ö®ºó£¬Ôõô×öµ½ÕýÈ·µÄ¶ÔÓ¦£¬±ÈÈ磬ÎÒµã»÷home °´Å¥£¬Ò³ÃæÖÐÔõô¾ÍÕýºÃÄÜÏÔʾhomeµÄÄÚÈÝ¡£Õâ¾ÍÒªÔÚjs ÎļþÖÐÅäÖ÷ÓÉ¡£

·ÓÉÖÐÓÐÈý¸ö»ù±¾µÄ¸ÅÄî route, routes, router¡£

1£¬ route£¬ËüÊÇÒ»Ìõ·ÓÉ£¬ÓÉÕâ¸öÓ¢Îĵ¥´ÊÒ²¿ÉÒÔ¿´³öÀ´£¬ËüÊǵ¥Êý£¬ Home°´Å¥ => homeÄÚÈÝ£¬ ÕâÊÇÒ»Ìõroute, about°´Å¥ => about ÄÚÈÝ£¬ ÕâÊÇÁíÒ»Ìõ·ÓÉ¡£

2£¬ routes ÊÇÒ»×é·ÓÉ£¬°ÑÉÏÃæµÄÿһÌõ·ÓÉ×éºÏÆðÀ´£¬ÐγÉÒ»¸öÊý×é¡£[{home °´Å¥ =>homeÄÚÈÝ }£¬ { about°´Å¥ => about ÄÚÈÝ}]

3£¬ router ÊÇÒ»¸ö»úÖÆ£¬Ï൱ÓÚÒ»¸ö¹ÜÀíÕߣ¬ËüÀ´¹ÜÀí·ÓÉ¡£ÒòΪroutes Ö»ÊǶ¨ÒåÁËÒ»×é·ÓÉ£¬Ëü·ÅÔÚÄÄÀïÊǾ²Ö¹µÄ£¬µ±ÕæÕýÀ´ÁËÇëÇó£¬Ôõô°ì£¿ ¾ÍÊǵ±Óû§µã»÷home °´Å¥µÄʱºò£¬Ôõô°ì£¿Õâʱrouter ¾ÍÆð×÷ÓÃÁË£¬Ëüµ½routes ÖÐÈ¥²éÕÒ£¬È¥ÕÒµ½¶ÔÓ¦µÄ home ÄÚÈÝ£¬ËùÒÔÒ³ÃæÖоÍÏÔʾÁË home ÄÚÈÝ¡£

4£¬¿Í»§¶ËÖеÄ·ÓÉ£¬Êµ¼ÊÉϾÍÊÇdom ÔªËØµÄÏÔʾºÍÒþ²Ø¡£µ±Ò³ÃæÖÐÏÔʾhome ÄÚÈݵÄʱºò£¬about ÖеÄÄÚÈÝÈ«²¿Òþ²Ø£¬·´Ö®Ò²ÊÇÒ»Ñù¡£¿Í»§¶Ë·ÓÉÓÐÁ½ÖÖʵÏÖ·½Ê½£º»ùÓÚhash ºÍ»ùÓÚhtml5 history api.

vue-routerÖеÄ·ÓÉÒ²ÊÇ»ùÓÚÉÏÃæµÄÄÚÈÝÀ´ÊµÏÖµÄ

ÔÚvueÖÐʵÏÖ·ÓÉ»¹ÊÇÏà¶Ô¼òµ¥µÄ¡£ÒòΪÎÒÃÇÒ³ÃæÖÐËùÓÐÄÚÈݶ¼ÊÇ×é¼þ»¯µÄ£¬ÎÒÃÇÖ»Òª°Ñ·¾¶ºÍ×é¼þ¶ÔÓ¦ÆðÀ´¾Í¿ÉÒÔÁË£¬È»ºóÔÚÒ³ÃæÖаÑ×é¼þäÖȾ³öÀ´¡£

1£¬ Ò³ÃæÊµÏÖ£¨htmlÄ£°æÖУ©

ÔÚvue-routerÖÐ, ÎÒÃÇ¿´µ½Ëü¶¨ÒåÁËÁ½¸ö±êÇ©< router-link > ºÍ< router-view >À´¶ÔÓ¦µã»÷ºÍÏÔʾ²¿·Ö¡£< router-link > ¾ÍÊǶ¨ÒåÒ³ÃæÖеã»÷µÄ²¿·Ö£¬< router-view > ¶¨ÒåÏÔʾ²¿·Ö£¬¾ÍÊǵã»÷ºó£¬ÇøÅäµÄÄÚÈÝÏÔʾÔÚʲôµØ·½¡£ËùÒÔ < router-link > »¹ÓÐÒ»¸ö·Ç³£ÖØÒªµÄÊôÐÔ to£¬¶¨Òåµã»÷Ö®ºó£¬Òªµ½ÄÄÀïÈ¥£¬ È磺< router-link to="/home" >Home< /router-link >

2£¬ js ÖÐÅäÖ÷ÓÉ

Ê×ÏÈÒª¶¨Òåroute, Ò»Ìõ·ÓɵÄʵÏÖ¡£ËüÊÇÒ»¸ö¶ÔÏó£¬ÓÉÁ½¸ö²¿·Ö×é³É£º pathºÍcomponent. path ָ·¾¶£¬component Ö¸µÄÊÇ×é¼þ¡£È磺{path:¡¯/home¡¯, component: home}

ÎÒÃÇÕâÀïÓÐÁ½Ìõ·ÓÉ£¬×é³ÉÒ»¸öroutes:

const routes = [
{ path: '/home', component: Home },
{ path: '/about', component: About }
]

×îºó´´½¨router ¶Ô·ÓɽøÐйÜÀí£¬ËüÊÇÓɹ¹Ô캯Êý new vueRouter() ´´½¨£¬½ÓÊÜroutes ²ÎÊý¡£

const router = new VueRouter({
routes // routes: routes µÄ¼òд
})
¡¡

ÅäÖÃÍê³Éºó£¬°Ñrouter ʵÀý×¢Èëµ½ vue ¸ùʵÀýÖÐ,¾Í¿ÉÒÔʹÓ÷ÓÉÁË

const app = new Vue({
router
}).$mount('#app')

Ö´Ðйý³Ì£ºµ±Óû§µã»÷ router-link ±êǩʱ£¬»áȥѰÕÒËüµÄ to ÊôÐÔ£¬ ËüµÄ to ÊôÐÔºÍ js ÖÐÅäÖõÄ·¾¶{ path: '/home', component: Home} path Ò»Ò»¶ÔÓ¦£¬´Ó¶øÕÒµ½ÁËÆ¥ÅäµÄ×é¼þ£¬ ×îºó°Ñ×é¼þäÖȾµ½ < router-view > ±êÇ©ËùÔڵĵط½¡£ËùÓеÄÕâЩʵÏÖ²ÅÊÇ»ùÓÚhash ʵÏֵġ£

vue-cli ´´½¨Ò»¸öÏîÄ¿ÌåÑéÒ»ÏÂ, µ±È»²»ÒªÍü¼Ç°²×°vue-router
¡¡1 ÔÚsrc Ŀ¼ÏÂн¨Á½¸ö×é¼þ£¬home.vue ºÍ about.vue

<template>
<div>
<h1>home</h1>
<p>{{msg}}</p>
</div>
</template>
<script>
export default {
data () {
return {
msg: "ÎÒÊÇhome ×é¼þ"
}
}
}
</script>
<template>
<div>
<h1>about</h1>
<p>{{aboutMsg}}</p>
</div>
</template>
<script>
export default {
data () {
return {
aboutMsg: 'ÎÒÊÇabout×é¼þ'
}
}
}
</script>
¡¡

2, ÔÚ App.vueÖÐ ¶¨Òå< router-link > ºÍ < /router-view >

<template>
<div id="app">
<img src="./assets/logo.png">
<header>
<!-- router-link ¶¨Òåµã»÷ºóµ¼º½
µ½Äĸö·¾¶ÏÂ-->
<router-link to="/home">Home
</router-link>
<router-link to="/about">About
</router-link>
</header>
<!-- ¶ÔÓ¦µÄ×é¼þÄÚÈÝäÖȾµ½
router-viewÖÐ -->
<router-view></router-view>
</div>
</template>
<script>
export default {
}
</script>

3, ÔÚ srcĿ¼ÏÂÔÙн¨Ò»¸örouter.js ¶¨Òårouter, ¾ÍÊǶ¨Òå ·¾¶µ½ ×é¼þµÄ Ó³Éä¡£

import Vue from "vue";
import VueRouter from "vue-router";
// ÒýÈë×é¼þ
import home from "./home.vue";
import about from "./about.vue";
// Òª¸æËß vue ʹÓà vueRouter
Vue.use(VueRouter);
const routes = [
{
path:"/home",
component: home
},
{
path: "/about",
component: about
}
]
var router = new VueRouter({
routes
})
export default router;

4£¬ °Ñ·ÓÉ×¢Èëµ½¸ùʵÀýÖУ¬Æô¶¯Â·ÓÉ¡£ÕâÀïÆäʵ»¹ÓÐÒ»ÖÖ·½·¨£¬¾ÍÏñvuex store ×¢Èëµ½¸ùʵÀýÖÐÒ»Ñù£¬ÎÒÃÇÒ²¿ÉÒÔ°ÑvueRouter Ö±½Ó×¢Èëµ½¸ùʵÀýÖС£ÔÚmain.jsÖÐÒýÈë·ÓÉ£¬×¢Èëµ½¸ùʵÀýÖС£

import Vue from 'vue'
import App from './App.vue'
// ÒýÈë·ÓÉ
import router from "./router.js"
// import router µÄrouter
Ò»¶¨ÒªÐ¡Ð´£¬ ²»ÒªÐ´³ÉRouter,
·ñÔò±¨ can't matchµÄ±¨´í
new Vue({
el: '#app',
router, // ×¢Èëµ½¸ùʵÀýÖÐ
render: h => h(App)
})

5£¬ Õâʱµã»÷Ò³ÃæÉϵÄhome ºÍabout ¿ÉÒÔ¿´µ½×é¼þÀ´»ØÇл»¡£µ«ÊÇÓÐÒ»¸öÎÊÌ⣬µ±Ê״νøÈëÒ³ÃæµÄʱºò£¬Ò³ÃæÖв¢Ã»ÓÐÏÔʾÈκÎÄÚÈÝ¡£ÕâÊÇÒòΪÊ״νøÈëÒ³ÃæÊ±£¬ËüµÄ·¾¶ÊÇ '/'£¬ÎÒÃDz¢Ã»ÓиøÕâ¸ö·¾¶×öÏàÓ¦µÄÅäÖá£Ò»°ã£¬Ò³ÃæÒ»¼ÓÔØ½øÀ´¶¼»áÏÔʾhomeÒ³Ãæ£¬ÎÒÃÇÒ²Òª°ÑÕâ¸ö·¾¶Ö¸Ïòhome×é¼þ¡£µ«ÊÇÈç¹ûÎÒÃÇд{ path: '/', component: Home },vue »á±¨´í£¬ÒòΪÁ½Ìõ·¾¶È´Ö¸Ïòͬһ¸ö·½Ïò¡£ÕâÔõô°ì£¿ÕâÐèÒªÖØ¶¨Ïò£¬ËùÎ½ÖØ¶¨Ïò£¬¾ÍÊÇÖØÐ¸øËüÖ¸¶¨Ò»¸ö·½Ïò£¬Ëü±¾À´ÊÇ·ÃÎÊ / ·¾¶£¬ÎÒÃÇÖØÐÂÖ¸Ïò¡®/home¡¯, Ëü¾ÍÏ൱ÓÚ·ÃÎÊ '/home', ÏàÓ¦µØ, home×é¼þ¾Í»áÏÔʾµ½Ò³ÃæÉÏ¡£vueRouterÖÐÓà redirect À´¶¨ÒåÖØ¶¨Ïò¡£

const routes = [
{
path:"/home",
component: home
},
{
path: "/about",
component: about
},
// ÖØ¶¨Ïò
{
path: '/',
redirect: '/home'
}
]

ÏÖÔÚÒ³ÃæÕý³£ÁË£¬Ê״νøÈëÏÔʾhome, ²¢ÇÒµã»÷Ò²¿ÉÒÔ¿´µ½ÄÚÈݵÄÇл»¡£

6£¬ ×îºó£¬ÎÒÃÇ¿´Ò»Ï·ÓÉÊÇÔõôʵÏÖµÄ

´ò¿ªä¯ÀÀÆ÷¿ØÖÆÌ¨£¬Ê×ÏÈ¿´µ½ router-link ±êÇ©äÖȾ³ÉÁË a ±êÇ©£¬to ÊôÐÔ±ä³ÉÁËa ±êÇ©µÄ href ÊôÐÔ£¬Õâʱ¾ÍÃ÷°×Á˵ã»÷Ìø×ªµÄÒâ˼¡£router-view ±êÇ©äÖȾ³ÉÁËÎÒÃǶ¨ÒåµÄ×é¼þ£¬ÆäʵËü¾ÍÊÇÒ»¸öռλ·û£¬ËüÔÚʲôµØ·½£¬Æ¥Åä·¾¶µÄ×é¼þ¾ÍÔÚʲôµØ·½£¬ËùÒÔ router-link ºÍrouter-view ±êǩһһ¶ÔÓ¦£¬³É¶Ô³öÏÖ¡£

ÕâÀﻹ¿´µ½£¬µ±µã»÷HomeºÍAbout À´»ØÇл»Ê±£¬a ±êÇ©ÓÐÒ»¸öÑùʽÀà .router-link-active Ò²ÔÚÀ´»ØÇл»£¬ Ô­À´ÕâÊǵ±router-link ´¦ÓÚÑ¡ÖÐ״̬ʱ£¬vueRouter »á×Ô¶¯Ìí¼ÓÕâ¸öÀ࣬Òò´ËÎÒÃÇÒ²¿ÉÒÔÀûÓÃÕâ¸öÀàÀ´¸Ä±äÑ¡ÖÐʱµÄ״̬£¬ÈçÑ¡ÖÐʱ£¬ÈÃËü±ä³ÉºìÉ«¡£µ«µ±ÉèÖà .router-link-active {color: red;}£¬Ëü²¢Ã»ÓÐÉúЧ£¬Õâʱ»¹ÒªÔÚÀàÇ°Ãæ¼ÓÒ»¸öa, a.router-link-active {color: red;}, ÕâÑù¾ÍûÓÐÎÊÌâÁË¡£Î´´¦ÓÚÑ¡ÖÐ״̬µÄrouter-link£¬ ÎÒÃÇÒ²Ïë¸øËü¸ü¸ÄÑùʽ£¬Ôõô°ì? Ö±½Ó¸øËüÌí¼ÓÒ»¸ö class ¾Í¿ÉÒÔÁË£¬ < router-link class="red" >Home< /router-link >

¶¯Ì¬Â·ÓÉ

ÉÏÃæÎÒÃǶ¨ÒåµÄ·ÓÉ£¬¶¼ÊÇÑϸñÆ¥ÅäµÄ£¬Ö»ÓÐrouter-link ÖеÄtoÊôÐÔºÍ js ÖÐÒ»Ìõ·ÓÉrouteÖÐ path һģһÑù£¬²ÅÄÜÏÔʾÏàÓ¦µÄ×é¼þcomponent. µ«ÓÐʱÏÖʵȴ²»ÊÇÕâÑùµÄ£¬µ±ÎÒÃÇÈ¥·ÃÎÊÍøÕ¾²¢µÇ¼³É¹¦ºó£¬Ëü»áÏÔʾ »¶Ó­Ä㣬+ ÄãµÄÃû×Ö¡£²»Í¬µÄÓû§µÇ¼£¬ Ö»ÊÇÏÔʾ¡°ÄãµÄÃû×Ö¡± ²¿·Ö²»Í¬£¬ÆäËü²¿·ÖÊÇÒ»ÑùµÄ¡£Õâ¾Í±íʾ£¬ËüÊÇÒ»¸ö×é¼þ£¬¼ÙÉèÊÇuser×é¼þ¡£²»Í¬µÄÓû§£¨¾ÍÊÇÓû§µÄid²»Í¬£©£¬Ëü¶¼»áµ¼º½µ½Í¬Ò»¸öuser ×é¼þÖС£ÕâÑùÎÒÃÇÔÚÅäÖ÷ÓɵÄʱºò£¬¾Í²»ÄÜдËÀ, ¾ÍÊÇ·ÓÉÖеÄpathÊôÐÔ£¬²»ÄÜдËÀ£¬ÄÇÒªÔõôÉèÖÃ? µ¼º½µ½ user ×é¼þ£¬Â·¾¶Öп϶¨ÓÐuser, id ²»Í¬£¬ÄǾ͸øÂ·¾¶Ò»¸ö¶¯Ì¬²¿·ÖÀ´Æ¥Å䲻ͬµÄid. ÔÚvue-routerÖУ¬¶¯Ì¬²¿·Ö ÒÔ : ¿ªÍ·£¬ÄÇô·¾¶¾Í±ä³ÉÁË /user/:id, ÕâÌõ·ÓɾͿÉÒÔÕâôд£º { path:"/user/:id", component: user }.

ÎÒÃǶ¨ÒåÒ»¸öuser×é¼þ£¨×Ô¼ºËæ±ãдһ¸ö¾ÍºÃÁË£©£¬Ò³ÃæÖÐÔÙÌí¼ÓÁ½¸örouter-link ÓÃÓÚµ¼º½£¬ ×îºórouter.jsÖÐÌí¼Ó·ÓÉÅäÖã¬À´ÌåÑéÒ»ÏÂ

app.vue ÖÐÌí¼ÓÁ½¸örouter-link£º

<template>
<div id="app">
<img src="./assets/logo.png">
<header>
<router-link to="/home">Home
</router-link>
<router-link to="/about">About
</router-link>
<!-- Ôö¼ÓÁ½¸öµ½user×é¼þµÄµ¼º½£¬
¿ÉÒÔ¿´µ½ÕâÀïʹÓÃÁ˲»Í¬µÄtoÊôÐÔ-->
<router-link to="/user/123">
User123</router-link>
<router-link to="/user/456">
User456</router-link>
</header>
<router-view></router-view>
</div>
</template>

router.js ÅäÖÃuser¶¯Ì¬Â·ÓÉ£º

const routes = [
{
path:"/home",
component: home
},
{
path: "/about",
component: about
},
/*ÐÂÔöuser·¾¶£¬ÅäÖÃÁ˶¯Ì¬µÄid*/
{
path: "/user/:id",
component: user
},
{
path: '/',
redirect: '/home'
}
]

user×é¼þ

<template>
<div>
<h1>User</h1>
<div>ÎÒÊÇuser×é¼þ</div>
</div>
</template>
<script>
export default {
}
</script>

ÕâʱÔÚÒ³ÃæÖеã»÷user123 ºÍuser456, ¿ÉÒÔ¿´µ½ËüÃǶ¼µ¼º½µ½user×é¼þ£¬ÅäÖÃÕýÈ·¡£ ÔÚ¶¯Ì¬Â·ÓÉÖУ¬Ôõô»ñÈ¡µ½¶¯Ì¬²¿·Ö£¿ ÒòΪÔÚ×é¼þÖÐÊÇ¿ÉÒÔÏÔʾ²»Í¬²¿·ÖµÄ£¬¾ÍÊÇÉÏÃæÌáµ½µÄ¡°ÄãµÄÃû×Ö¡±¡£Æäʵ£¬µ±Õû¸övue-router ×¢Èëµ½¸ùʵÀýºó£¬ÔÚ×é¼þµÄÄÚ²¿£¬¿ÉÒÔͨ¹ýthis.$route À´»ñÈ¡µ½ router ʵÀý¡£ËüÓÐÒ»¸öparams ÊôÐÔ£¬¾ÍÊÇÀ´»ñµÃÕâ¸ö¶¯Ì¬²¿·ÖµÄ¡£ËüÊÇÒ»¸ö¶ÔÏó£¬ÊôÐÔÃû£¬¾ÍÊÇ·¾¶Öж¨ÒåµÄ¶¯Ì¬²¿·Ö id, ÊôÐÔÖµ¾ÍÊÇrouter-linkÖÐto ÊôÐÔÖеĶ¯Ì¬²¿·Ö£¬Èç123¡£Ê¹ÓÃvuexʱ£¬×é¼þÖÐÏëÒª»ñÈ¡µ½state ÖеÄ״̬£¬ÊÇÓÃcomputed ÊôÐÔ£¬ÔÚÕâÀïÒ²ÊÇÒ»Ñù£¬ÔÚ×é¼þÖУ¬¶¨ÒåÒ»¸öcomputed ÊôÐÔdynamicSegment£¬ user ×é¼þÐÞ¸ÄÈçÏ£º

<template>
<div>
<h1>User</h1>
<div>ÎÒÊÇuser×é¼þ, ¶¯Ì¬²¿·ÖÊÇ
{{dynamicSegment}}</div>
</div>
</template>
<script>
export default {
computed: {
dynamicSegment () {
return this.$route.params.id
}
}
}
</script>

ÕâÀﻹÓÐ×îºóÒ»¸öÎÊÌ⣬¾ÍÊǶ¯Ì¬Â·ÓÉÔÚÀ´»ØÇл»Ê±£¬ÓÉÓÚËüÃǶ¼ÊÇÖ¸Ïòͬһ×é¼þ£¬vue²»»áÏú»ÙÔÙ´´½¨Õâ¸ö×é¼þ£¬¶øÊǸ´ÓÃÕâ¸ö×é¼þ£¬¾ÍÊǵ±µÚÒ»´Îµã»÷£¨È磺user123£©µÄʱºò£¬vue °Ñ¶ÔÓ¦µÄ×é¼þäÖȾ³öÀ´£¬µ«ÔÚuser123, user456µã»÷À´»ØÇл»µÄʱºò£¬Õâ¸ö×é¼þ¾Í²»»á·¢Éú±ä»¯ÁË£¬×é¼þµÄÉúÃüÖÜÆÚ²»¹ÜÓÃÁË¡£ÕâʱÈç¹ûÏëÒªÔÚ×é¼þÀ´»ØÇл»µÄʱºò×öµãÊÂÇ飬ÄÇôֻÄÜÔÚ×é¼þÄÚ²¿£¨user.vueÖУ©ÀûÓÃwatch À´¼àÌý$route µÄ±ä»¯¡£°ÑÉÏÃæµÄ´úÂëÓüàÌý$route ʵÏÖ

<script>
export default {
data () {
return {
dynamicSegment: ''
}
},
watch: {
$route (to,from){
// to±íʾµÄÊÇÄãҪȥµÄÄǸö×é¼þ£¬
from ±íʾµÄÊÇÄã´ÓÄĸö×é¼þ¹ýÀ´µÄ£¬
ËüÃÇÊÇÁ½¸ö¶ÔÏó£¬Äã¿ÉÒÔ°ÑËü´òÓ¡³öÀ´£¬
ËüÃÇÒ²ÓÐÒ»¸öparam ÊôÐÔ
console.log(to);
console.log(from);
this.dynamicSegment = to.params.id
}
}
}
</script>

ǶÌ×·ÓÉ

ǶÌ×·ÓÉ£¬Ö÷ÒªÊÇÓÉÎÒÃǵÄÒ³Ãæ½á¹¹Ëù¾ö¶¨µÄ¡£µ±ÎÒÃǽøÈëµ½homeÒ³ÃæµÄʱºò£¬ËüÏÂÃæ»¹ÓзÖÀ࣬ÈçÊÖ»úϵÁУ¬Æ½°åϵÁУ¬µçÄÔϵÁС£µ±ÎÒÃǵã»÷¸÷¸ö·ÖÀàµÄʱºò£¬Ëü»¹ÊÇÐèҪ·Óɵ½¸÷¸ö²¿·Ö£¬Èçµã»÷ÊÖ»ú£¬Ëü¿Ï¶¨µ½¶ÔÓ¦µ½ÊÖ»úµÄ²¿·Ö¡£

ÔÚ·ÓɵÄÉè¼ÆÉÏ£¬Ê×ÏȽøÈëµ½ home ,È»ºó²ÅÄܽøÈëµ½phone, tablet, computer. Phone, tablet, compute ¾ÍÏ൱ÓÚ½øÈëµ½ÁËhomeµÄ×ÓÔªËØ¡£ËùÒÔvue ÌṩÁËchildrens ÊôÐÔ£¬ËüÒ²ÊÇÒ»×é·ÓÉ,Ï൱ÓÚÎÒÃÇËùдµÄroutes¡£

Ê×ÏÈ£¬ÔÚhomeÒ³ÃæÉ϶¨ÒåÈý¸örouter-link ±êÇ©ÓÃÓÚµ¼º½£¬È»ºóÔÙ¶¨ÒåÒ»¸örouter-view±êÇ©£¬ÓÃÓÚäÖȾ¶ÔÓ¦µÄ×é¼þ¡£router-link ºÍrouter-view ±êǩҪһһ¶ÔÓ¦¡£home.vue ×é¼þÐÞ¸ÄÈçÏ£º

<template>
<div>
<h1>home</h1>
<!-- router-link µÄtoÊôÐÔҪעÒ⣬
·ÓÉÊÇÏȽøÈëµ½home,È»ºó²Å½øÈëÏàÓ¦µÄ
×Ó·ÓÉÈç phone,ËùÒÔÊéдʱҪ
°Ñ home ´øÉÏ -->
<p>
<router-link to="/home/phone">
ÊÖ»ú</router-link>
<router-link to="/home/tablet">
ƽ°å</router-link>
<router-link to="/home/computer">
µçÄÔ</router-link>
</p>
<router-view></router-view>
</div>
</template>

router.js ÅäÖ÷ÓÉ£¬ÐÞ¸ÄÈçÏ£º

const routes = [
{
path:"/home",
¡¡¡¡¡¡¡¡¡¡// ÏÂÃæÕâ¸öÊôÐÔÒ²²»ÉÙ£¬
ÒòΪ£¬ÎÒÃÇÊÇÏȽøÈëhomeÒ³Ãæ£¬
²ÅÄܽøÈë×Ó·ÓÉ
component: home,
¡¡¡¡¡¡¡¡ // ×Ó·ÓÉ
children: [
{
path: "phone",
component: phone
},
{
path: "tablet",
component: tablet
},
{
path: "computer",
component: computer
}
]
},
{
path: "/about",
component: about
},
{
path: "/user/:id",
component: user
},
{
path: '/',
redirect: '/home'
}
]

Õâʱµ±ÎÒÃǵã»÷home ʱ£¬ËüÏÂÃæ³öÏÖÊÖ»úµÈ×ÖÑù£¬µ«Ã»ÓÐÈκζÔÓ¦µÄ×é¼þ½øÐÐÏÔʾ£¬Õâͨ³£²»ÊÇÎÒÃÇÏëÒªµÄ¡£ÒªÏëµã»÷homeʱ£¬ÒªÏëäÖȾÏà¶ÔÓ¦µÄ×Ó×é¼þ£¬ÄÇ»¹ÐèÒªÅäÖÃÒ»Ìõ·ÓÉ¡£µ±½øÈëµ½home ʱ£¬ËüÔÚchildrenÖжÔÓ¦µÄ·ÓÉpath ÊÇ¿Õ ¡®¡¯£¬ÍêÕûµÄchildrens ÈçÏ£º

children: [
{
path: "phone",
component: phone
},
{
path: "tablet",
component: tablet
},
{
path: "computer",
component: computer
},
// µ±½øÈëµ½homeʱ£¬ÏÂÃæµÄ×é¼þÏÔʾ
{
path: "",
component: phone
}
]

ÃüÃû·ÓÉ

ÃüÃû·ÓÉ£¬ºÜ¼òµ¥£¬ÒòΪ¸ù¾ÝÃû×־ͿÉÒÔÖªµÀ£¬Õâ¸ö·ÓÉÓÐÒ»¸öÃû×Ö£¬ÄǾÍÖ±½Ó¸øÕâ¸ö·ÓɼÓÒ»¸öname ÊôÐÔ£¬¾Í¿ÉÒÔÁË¡£ ¸øuser ·ÓɼÓÒ»¸öname ÊôÐÔ£º

{
path: "/user/:id",
name: "user",
component: user
}

ÃüÃû·ÓɵÄʹÓÃ, ÔÚrouter-link ÖÐto ÊôÐԾͿÉÒÔʹÓöÔÏóÁË,

<router-link to="/user/123">
User123</router-link> // ºÍÏÂÃæµÈ¼Û
<router-link :to="{ name: 'user',
params: { userId: 123 }}">User
</router-link> // µ±Ê¹ÓöÔÏó×÷Ϊ
·ÓɵÄʱºò£¬toÇ°ÃæÒª¼ÓÒ»¸öðºÅ,±íʾ°ó¶¨

±à³Ìʽµ¼º½£ºÕâÖ÷ÒªÓ¦Óõ½°´Å¥µã»÷ÉÏ¡£µ±µã»÷°´Å¥µÄʱºò£¬Ìø×ªÁíÒ»¸ö×é¼þ, ÕâÖ»ÄÜÓôúÂ룬µ÷ÓÃrourter.push() ·½·¨¡£ µ±ÃǰÑrouter ×¢Èëµ½¸ùʵÀýÖкó£¬×é¼þÖÐͨ¹ý this.$router ¿ÉÒÔ»ñÈ¡µ½router, ËùÒÔÔÚ×é¼þÖÐʹÓÃthis.$router.push("home"), ¾Í¿ÉÒÔÌø×ªµ½home½çÃæ

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

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

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

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