【Vue 2】 Vue2中两种路由跳转方式

本文介绍了Vue2中实现页面跳转的两种方法:标签式和编程式路由跳转。标签式通过使用<router-link>组件及其to属性完成导航;编程式则通过定义方法并利用this.$router.push(url)实现动态路由跳转。

【Vue 2】 Vue2中两种路由跳转方式

  1. 标签式
  2. 编程式

标签式

首先是 标签式 路由跳转,借用 router-linkto 属性进行跳转。

<el-aside width="200px">
    <router-link to="/c1/p1">P1</router-link>
    <router-link to="/c1/p2">P2</router-link>
    <router-link to="/c1/p3">P3</router-link>
</el-aside>

编程式

然后是 编程式 路由跳转,就是写一个方法传递url参数,使其路由跳转。

<el-header>
    <el-button type="primary" icon="el-icon-edit" 
               circle size="mini" @click="jump('/c1/p1')"></el-button>
    <el-button type="success" icon="el-icon-check" 
               circle size="mini" @click="jump('/c1/p2')"></el-button>
    <el-button type="warning" icon="el-icon-star-off" 
               circle size="mini" @click="jump('/c1/p3')"></el-button>
</el-header>

编写一个 jump 方法。

<script>
const options = {
    methods : {
        jump(url) {
            this.$router.push(url);
        }
    }
}
export default options;
</script>

这里最重要的就是 this.$router.push(url);

完。。。。。。

<think>我们需要回答关于Vue2路由跳转的问题,并按照要求提出3-5个相关问题。 用户询问的是Vue2中的路由跳转,我们将介绍几种常见的路由跳转方式,包括声明式导航和编程式导航,并给出示例代码。 注意:在Vue2中,我们通常使用vue-router来实现路由跳转。 回答结构: 1. 简要介绍Vue2路由跳转两种主要方式2. 分别给出声明式导航和编程式导航的示例代码(包含主要用法)。 3. 提出相关问题(3-5个),并以“§§相关问题§§”开头,然后列出问题。 注意:在Vue2中,我们使用`this.$router`进行编程式导航,而声明式导航使用`<router-link>`组件。 我们将展示两种方式的基本用法,并提及路由传参的常见方法(如params和query)。 </think>以下是 Vue2路由跳转的详细实现方法和代码示例: ### 一、核心跳转方式 #### 1. 声明式导航 (模板中使用) ```html <router-link to="/home">首页</router-link> <router-link :to="{ name: 'user', params: { id: 123 }}">用户页</router-link> <router-link :to="{ path: '/search', query: { keyword: 'vue' }}">搜索</router-link> ``` #### 2. 编程式导航 (JS 中使用) ```javascript // 基础跳转 this.$router.push('/home') // 对象形式跳转 this.$router.push({ path: '/user/123' }) // 命名路由 + 参数 this.$router.push({ name: 'profile', params: { userId: 456 } }) // 带查询参数 this.$router.push({ path: '/results', query: { q: 'vue router' } }) // 替换当前路由 (无历史记录) this.$router.replace('/login') // 前进/后退 this.$router.go(1) // 前进1页 this.$router.go(-2) // 后退2页 ``` ### 二、路由传参详解 ```javascript // 定义动态路由 const routes = [ { path: '/user/:id', component: User } ] // 获取参数 (在User组件中) export default { mounted() { console.log(this.$route.params.id) // 输出路由参数 console.log(this.$route.query.name) // 输出查询参数 } } ``` ### 三、导航守卫示例 ```javascript // 全局前置守卫 router.beforeEach((to, from, next) => { if (to.meta.requiresAuth && !isAuthenticated) { next('/login') // 重定向 } else { next() // 放行 } }) // 组件内守卫 export default { beforeRouteEnter(to, from, next) { // 在渲染该组件前调用 next(vm => { // 通过vm访问组件实例 }) } } ``` ### 四、路由配置示例 ```javascript // router.js import Vue from 'vue' import Router from 'vue-router' import Home from './views/Home.vue' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'home', component: Home }, { path: '/about', name: 'about', component: () => import('./views/About.vue'), // 懒加载 meta: { requiresAuth: true } // 路由元信息 } ] }) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值