vue 路由别名 路由跳转

本文通过一个实例,详细展示了如何使用Vue.js和Vue-Router实现页面路由切换及动态内容加载,包括设置HTML基本结构,引入Vue.js和Vue-Router库,定义组件和路由,以及实现动态内容展示。
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
 6     <script src="https://cdn.bootcss.com/vue-router/3.0.2/vue-router.js"></script>
 7 </head>
 8 <body>
 9 <div id="hdcms">
10     <router-view></router-view>
11 </div>
12 <script type="text/x-template" id="home">
13     <div>
14         <li v-for="v in news">
15             <router-link :to="{name:'content',params:{id:v.id}}">{{v.title}}</router-link>
16         </li>
17     </div>
18 </script>
19 <script type="text/x-template" id="content">
20     <div>
21         <h1>{{field.title}}-{{field.id}}</h1>
22         <p>
23             {{field.content}}
24         </p>
25         <router-link to="/">返回首页</router-link>
26     </div>
27 </script>
28 <script>
29     var data = [
30         {id:1,title:'HDPHP开源免费框架',content:'这是内容....'},
31         {id:2,title:'HDCMS内容管理系统',content:'这是HDCMS内容....'}
32     ];
33     const home = {
34         template: '#home',
35         data(){
36             return {
37                 news:data
38             }
39         }
40     }
41     const content = {
42         template: '#content',
43         data(){
44           return {
45               field:{}
46           }
47         },
48         mounted(){
49             var id =this.$route.params.id;
50             for(let k=0;k<data.length;k++){
51                 if(data[k].id==id){
52                     this.field = data[k];
53                 }
54             }
55         }
56     }
57     let routes = [
58         {path: '/', component: home},
59         {path: '/content/:id', component: content,name:'content'},
60     ];
61     //要把组件交给路由器
62     let router = new VueRouter({routes});
63     new Vue({
64         el: '#hdcms',
65         router
66     });
67 </script>
68 </body>
69 </html>

 

转载于:https://www.cnblogs.com/Spinoza/p/10600948.html

<think>嗯,用户想了解Vue.js中路由跳转的不同方式和方法,需要我总结一下官方文档里的内容,还要给出示例。首先,我得回忆一下Vue Router的基本用法,然后看看用户提供的引用内容。根据引用[1],Vue Router是官方路由管理器,用于SPA的路由管理。安装和配置部分可能用户需要,但当前问题主要是跳转方法。引用[2]提到了路由参数传递,通过定义路径参数,比如/user/:id,然后在组件中用$route.params.id获取。引用[3]提到命名路由,用name属性跳转,使用$router.push传params。引用[4]强调了模块化工程中需要用Vue.use安装路由。引用[5]对比了a标签和vue-router的优势,可能用户需要知道编程式导航和声明式导航的区别。 用户的问题集中在路由跳转的方法总结,所以需要分几类:声明式导航(如router-link)、编程式导航(如$router.push)、命名路由、带参数跳转路由模式等。还要注意是否需要代码示例,比如引用[2]和[3]中的代码结构。另外,用户提到官方文档,所以需要确保方法的正确性,比如router-link的用法,params和query的区别,以及动态路由匹配。 可能用户容易混淆params和query的使用,比如在编程式导航中,params需要name配合,而query可以用path。同时,替换当前路由的replace方法,和前进后退的go方法也需要提及。另外,动态路由如/user/:id的使用场景,以及如何在组件中获取参数。还需要注意,当使用模块化系统时,必须通过Vue.use(VueRouter)安装,如引用[4]所述。 需要检查是否有遗漏的方法,比如重定向或别名,但用户主要问的是跳转方式,所以可能不需要深入。还要注意错误处理,比如跳转不存在的路由,但可能用户不需要这些。最后,生成相关问题,比如参数获取、路由模式区别、导航守卫等,帮助用户进一步学习。</think>### Vue.js 路由跳转方法总结 #### 一、基础跳转方式 1. **声明式导航(模板中使用`<router-link>`)** 通过组件实现跳转,类似`<a>`标签但支持路由特性: ```html <!-- 基础路径跳转 --> <router-link to="/home">首页</router-link> <!-- 动态路径参数 --> <router-link :to="'/user/' + userId">用户页</router-link> <!-- 命名路由传参 --> <router-link :to="{ name: 'user', params: { id: 1 }}">用户详情</router-link> <!-- 使用query传参 --> <router-link :to="{ path: '/search', query: { keyword: 'vue' }}">搜索</router-link> ``` 2. **编程式导航(JS代码中跳转)** 通过`$router`对象实现灵活控制: ```javascript // 基础路径跳转 this.$router.push('/home') // 对象形式跳转 this.$router.push({ path: '/about' }) // 命名路由传参(需配合路由配置的name属性) this.$router.push({ name: 'article', params: { id: 123 } }) // 使用query传参(参数显示在URL) this.$router.push({ path: '/search', query: { q: 'vue-router' } }) ``` #### 二、特殊跳转方法 1. **替换当前路由(无历史记录)** 使用`replace`方法替代当前页面: ```javascript this.$router.replace('/new-page') ``` 2. **前进/后退导航** 通过`go`方法控制历史记录: ```javascript this.$router.go(-1) // 后退一步 this.$router.go(2) // 前进两步 ``` #### 三、动态路由匹配 1. **参数接收** 在路由配置中使用冒号定义动态字段: ```javascript const router = new VueRouter({ routes: [ { path: '/user/:id', component: User } ] }) ``` 组件中通过`$route.params`获取参数: ```javascript export default { created() { console.log(this.$route.params.id) // 输出动态id值 } } ``` #### 四、路由模式配置 ```javascript const router = new VueRouter({ mode: 'history', // 可选hash/history routes: [...] }) ``` - `hash模式`:默认模式,URL带`#`符号(兼容性好) - `history模式`:需要服务器支持(更干净的URL)[^1] #### 五、最佳实践 1. 使用命名路由提高代码可维护性[^3] 2. 重要参数建议使用`query`以保证页面刷新后参数不丢失 3. 通过`Vue.use(VueRouter)`确保正确安装路由插件[^4]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值