Vue中的路由使用及添加参数

本文介绍在Vue应用中如何进行路由配置,实现页面间的跳转,并讲解如何在路由中添加和传递参数,以实现在不同组件页面间高效地切换和数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 在一个系统中会由很多页面组成,在Vue开发中这些页面通常使用的是Vue中的组件来实现的,那么当在一个页面要跳转到另外一个页面的时候是通过改变url路径来实现的,那么这个时候Vue需要知道当前url对应的是哪个组件页面
<!DOCTYPE html>
<html lang="en">

<head>
    <title></title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="./vue2.js"></script>
    <!-- 引入路由文件 -->
    <script src="./vue-router.js"></script>
</head>

<body>
    <div id="app">
        <ul>
            <!-- 
          vue路由中通过router-link去做跳转,它有一个to属性,to属性的值必须和path中的路径对应
          router-link将来会被渲染成为a标签,它的to属性会被渲染成a标签的href属性,但它的值前对面会加一个#,变为锚点
        -->
            <li>
                <router-link to="/index">首页</router-link>
            </li>
            <li>
                <router-link to="/productType/11">蔬菜</router-link>
            </li>
            <li>
                <router-link to="/productType/22">水果</router-link>
            </li>
            <li>
                <router-link to="/productType/33">肉类</router-link>
            </li>
        </ul>
        <!--6. 通过router-view挖坑,路径匹配到的组件都会渲染到这个坑里面来  -->
        <router-view></router-view>
    </div>

    <script>
        //2.准备路由需要的组件
        var index = Vue.component('indexA', {
            template: `<div>这是首页</div>`
        })
        var productType = Vue.component('indexB', {
                // 在html中获取路由参数 通过$route.params.参数名
                template: `<div>这是显示商品编号{{$route.params.id}}</div>`,
                mounted() {
                    // 在js中获取路由参数 通过this.$route.params.参数名
                    console.log(this.$route.params.id);
                    console.log(this.$route);
                }
            })
            //3.创建路由对象在这个对象里面去配置路由规则
        var router = new VueRouter({
            // 4. 通过routes属性配置路由规则,它是一个数组,数组中放的是对象,每个对象对应一条规则,并且每个对象里面都包含有name(表示路由规则的名称)/path(表示路径)/component(表示路径对应的组件)
            routes: [{
                name: 'indexA',
                component: index,
                path: '/index'
            }, {
                name: 'productType',
                component: productType,
                path: '/productType/:id' //路由加参数方法  :参数名
            }]
        })
        var vm = new Vue({
            el: '#app',
            // 5. 在vue实例中注入路由,这样整个应用程序都会拥有路由了
            router,
            data: {

            }
        })
    </script>
</body>

</html>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值