vue2.x与3.x静态路由和动态路由

路由

路由是根据url分配对应的处理程序。在vue中,url与组件绑定形成一一对应的关系,那么路由就是根据url分配对应的组件。路由分为静态的和动态的。
动态路由是指路径是动态变化的,不是一个固定的路径,可以在路径后面传递参数。
我们先来看一下静态路由,静态路由就是路由是固定的,只有准确的输入路径,才能跳转到相应的组件。路由声明有两种形式即声明式和编程式。

声明式

声明式就是使用router-link达到切换路由的目的。
声明式创建路由的几个步骤

  1. 在组价中的模板中写入、在router-link中设置好要跳转的组件
<div id="app">
        <div>
            <router-link to="/index">index</router-link>
            <router-link to="/home">home</router-link>
            <router-link to="/category">category</router-link>
            <p>
                <router-view></router-view>
            </p>
        </div>
    </div>
  1. 创建相应组件
 const index = {
        template: "#index"
    };
    const home = {
        template: "#home"
    };
    const category = {
        template: "#category"
    };
  1. 创建路由规则
    将路径和组件建立对应关系
const route = [{
        path: "/index",
        component: index
    }, {
        path: "/home",
        component: home
    }, {
        path: "/category",
        component: category
    }];
  1. 创建路由实例对象
// vue2.x生成路由实例
 const router=new VueRouter({
        routes:route
    });
// vue3.x生成路由实例
import {createRouter} from 'vue-router';
const router = createRouter({
	routes:[{
	path:"/",
	component:home
	}]
});
  1. 将路由实例对象挂载到顶级实例中
var app = new Vue({
        router,
        el: "#app",
    });

在这里插入图片描述

编程式

编程式就是调用router对象的方法进行路由匹配。

  1. 设置好链接和要跳转的路由,写入
<div id="app">
        <div>
            <h1 @click="move('/index')">index</h1>
            <h1 @click="move('/home')">home</h1>
            <h1 @click="move('/category')">category</h1>
            <p>
                <router-view></router-view>
            </p>
        </div>

    </div>

编程式路由匹配需要在元素上设置事件以确定要匹配哪一个路由。
后续步骤和声明式路由匹配一致。
编程式路由匹配比声明式路由匹配多了一步,就是move函数的处理

var app = new Vue({
        router,
        el: "#app",
        methods: {
            move(url) {
                router.push({
                    path: url
                })
            }
        }
    });

动态路由

动态路由的声明和静态路由声明相似,只是在创建路由规则的时候可以在path中添加路径参数。

 const route = [{
        path: "/index/:uername",
        component: index
    }{
        path: "/home/:username",
        component: home
    }, {
        path: "/category/:username",
        component: category
    }];

那么如何获取到参数呢
在vue中可以使用$route对象的params属性获取参数。

var app = new Vue({
        router,
        el: "#app",
        methods: {
            move(url) {
                router.push({
                    path: url + "/lee"
                });
                console.log(this.$route.params);
            }
        }
    });

在这里插入图片描述
我们可以看到在控制台输出了我们传递的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端御书房

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值