Vue路由传递参数

Vue路由传递参数

路由界面介绍

​ 这里是页面进行路由的配置,并且这里的名字最好大驼峰的方式进行抒写

php 复制代码
// 调用user方法,将VueRouter作为一个vue组件来使用
Vue.use(VueRouter);

​ 下面的const router 是用来声明不同页面对应的不同的访问的路径

路由的配置

​ 在创建路由的对象中,我们添加路由的模式, 这里我们选择添加hash默认的格式,这样通过npm run serve启动项目的时候,就会自动打开网页了

js 复制代码
const router = new VueRouter({
  routes,
  // 路由的两种模式  history 历史模式
  // hash:哈希模式 路径上带# 默认是此模式
  mode: "hash",
});

路由的两种模式

第一种是声明式路由

​ 它默认会被渲染成一个带有链接的a标签,通过to属性指定链接地址。

  • to:导航路径,要填写的是你在router/index.js文件里配置的path值,如果要导航到默认首页,只需要写成 to="/" ,
  • text :就是我们要显示给用户的导航名称。
ini 复制代码
<router-link to="/">[text]</router-link>
// 例子
<router-link to="/aa">界面内的a界面</router-link>

// router index.js文件
const routes = [
  {
    path: "/aa",
    name: "aa",
    component: AaView,
  },
]

​ 用于渲染界面所用的,例如我们在app的界面中引入的 默认界面,然后我们通过,将当前默认界面放入到router-view里面,就不用重复的去写页面了,这样就比较方便

sql 复制代码
<router-view ></router-view>

第二种是编程式路由

​ 这种就是我们在里面添加一个方法,让这个按钮点击这个方法的时候进行跳转

scss 复制代码
<button @click="go">跳转Aaview界面</button>

// methods

   methods: {
        go() {
            this.$router.push("/aa")
            // 使用replace做页面跳转时,此页面不会加入到历史页面中,因此无法后退
            // this.$router.replace('/aa')
        }
   }

路由传递参数

定义数据

​ 这里面的数据我们就随便定义了,

yaml 复制代码
 data() {
        return {
            users: [
                {
                    id: 1,
                    name: "admin",
                    age: 18
                }, {
                    id: 2,
                    name: 'root',
                    age: 20
                }
            ]
        }
    },

渲染数据

​ 这里渲染数据就用v-for的方式进行渲染,当我们点更新这个按钮的时候跳转这个链接,进行参数的传递,注意第二种传递方式很不常用,因为刷新浏览器后,参数就会丢失,所以说没有什么用

javascript 复制代码
<table>
            <tr v-for="(item, index) in users " :key="index">
                <td>{{ item.name }}</td>
                <td>{{ item.age }}</td>
                <td><button @click="update(item.id)">更新</button></td>
            </tr>
        </table>
        // methods方法中
               update(id) {
            // 跳转页面,将id值传到另外一个页面中 这种方式参数刷新浏览器不会丢失
            this.$router.push({
                //传参方式一: 动态路由传递参数  动态传递参数
                path: `/param/${id}`
                // -------------
                //传参方式二:  通过路由名称跳转界面 刷新参数就丢失 名称传参数
                // 方式二基本不用 ,没有用
                // name: 'param',
                // params: {
                //     id
                // }

                //-----------
                // 传参方式三:路径跳转,query传参
                // path: '/param',
                // query: { id }
            })
        }

​ 这里主要说下第一种与第三种方式,两种方式刷新浏览器都会

第一种方式

​ 根据router定义的路由,然后跳转到param这个界面

​ 注意方式一和方式二的接收参数方式相同,但是方式三接收参数的方式是通过query

bash 复制代码
path: `/param/${id}`

param界面接收传值过来的id

bash 复制代码
  路由参数:{{$route.params.id }}
第三种方式

​ 这里通过query将值到param界面,注意这里是将传递的值写在路径上面的

makefile 复制代码
//传参方式三:路径跳转,query传参
path: '/param',
query: { id }

param界面接收传值过来的id

bash 复制代码
 路由参数:{{$route.query.id }}
相关推荐
kyriewen14 分钟前
我review了一份Vibe Coding写的前端代码——能跑,但5个地方迟早要命
前端·javascript·ai编程
REDcker1 小时前
Cesium三维WebGIS入门详解
前端·gis·web·cesium·webgis
0暗影流光01 小时前
十倍效能提升——Web 基础研发体系的建立
前端
前端一课1 小时前
用Agent Skill重构代码:300行缩至30行的实战教程
前端
腻害兔1 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:IM 即时通讯模块,一个被低估的「全功能聊天系统」
java·前端·vue.js·产品经理·ai编程
奎叔2 小时前
Flutter 异常处理体系:从捕获、转换到恢复
前端
心念枕惊2 小时前
.NET CORE 授权进阶-角色、策略与动态权限实现
java·前端·.netcore
小徐_23332 小时前
寓言故事一则:狗猛酒酸
前端·ai编程
xiaobaoyu2 小时前
vue2+element开发中问题和解决方式
前端
KaMeidebaby2 小时前
卡梅德生物技术快报 | 核酸适配体文库测序:核酸适配体文库测序的技术原理、实验流程与数据解析
前端·网络·数据库·人工智能·算法