1、路由demo示例
<div id="app"> <h1>Hello App!</h1> <p> <!-- 使用 router-link 组件来导航. --> <!-- 通过传入 `to` 属性指定链接. --> <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 --> <router-link to="/foo">Go to Foo</router-link> <router-link to="/bar">Go to Bar</router-link> </p> <!-- 路由出口 --> <!-- 路由匹配到的组件将渲染在这里 --> <router-view></router-view> </div>
2、路由的跳转
router-link是一个组件,默认被渲染成一个带有链接的a标签,通过to属性指定链接地址。
注意:被选中的router-link将自动添加一个class属性值 .router-link-active
1、router-link的to属性
这是一个必须设置的属性,否则路由无法生效。它表示路由的链接,可以是一个字符串也可以是一个描述目标位置的对象。
<!-- 字符串 --> <router-link to="home">Home</router-link> <!-- 渲染结果同上 使用 v-bind 的 JS 表达式 --> <router-link v-bind:to="'home'">Home</router-link> <!-- 渲染结果同上 不写 v-bind 也可以,就像绑定别的属性一样 --> <router-link :to="'home'">Home</router-link> <!-- 渲染结果同上 --> <router-link :to="{ path: 'home' }">Home</router-link> <!-- 命名的路由 --> <router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link> // 此时路由如下定义,name也可为中文 const routes = [ { path:'/user', component: user, name:'user'} ]; <!-- 带查询参数,下面的结果为 /register?plan=private--> <router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link>
这里如果是简单的路由跳转,可以写成to也是可以是:to 或者是v-bind:to
对于命名路由示例如下:
{ path: '/moreFunDetail', name: 'moreFunDetail', component: moreFunDetail } <router-link :to="{ name: 'moreFunDetail', params: { id: 123 }}">User</router-link> 点击这个链接,跳转到的路径应该是:moreFunDetail/123,比如在文章列表,访问单个文章使用,这个id也就是文章的id
**2、replace **
一个布尔类型,默认为false。如果replace设置为true,那么导航不会留下history记录,点击浏览器回退按钮不会再回到这个路由。
<router-link to="goods" replace></router-link>
**3、tag **
router-link默认渲染成a标签,也有方法让它渲染成其他标签,tag属性就用来设置router-link渲染成什么标签的。
<!-- 渲染成li标签 --><router-link to="goods" tag="li"></router-link>
**4、active-class **
上面说了被选中的router-link将自动添加一个class属性值.router-link-active
,这个属性就是来修改这个class值的。
<!-- 改变router-link的active时的classname --><router-link to="goods" active-class="router-active'></router-link>