012vuerouter

news/2024/7/10 0:47:29 标签: vue

VUEROUTER3–vue2
vuerouter4–vue3
一个html可以切换多个组件,用户体验好很多

使用:导入-全局注册(use
import vuerouter from vuerouter
Vue.use(vuerouter)

vue-router有
< router-link >
并且使用< router-view>来声明路由占位符

index.js这个的作用就是能path转到对应url时,调用对应的组件,就是我们引入的组件
就是我们占位标签的位置
我们导出为router
然后要去main导入
import routes from ‘./router/index.js’
(如果叫index.js可以不写
import routes from ‘./router’
然后去new Vue里面写入router

import VueRouter from "vue-router";
import Vue from "vue";
import Discover from '../components/Discover.vue'
import Friends from '../components/Friends.vue'
import My from '../components/My.vue'

Vue.use(VueRouter)

const router = new VueRouter({
    //指定hash属性和组件的对应关系
    routes:[
        {path:'/discover',component:Discover},
        {path:'/friends',component:Friends},
        {path:'/my',component:My},
    ]
})

export default router

连接名称叫什么自己定义,只有后面对应组件就行
vue文件要保存,白點代表沒保存
但是这样写第一次进主页没有任何内容,所以我们应该重定向“/”这个路径到我们的页面;这样就每个地址都有内容;(router4好像就是默认第一个了)
{path:‘/’,redirect:“/discover”},
嵌套路由,
子路由里面也可以嵌套router-list
同时也要去router/index.js去注册路径和组件的对应关系
但是如果再通过绝对路径,不利于嵌套路由,vue支持子路由声明

import VueRouter from "vue-router";
import Vue from "vue";
import Discover from '../components/Discover.vue'
import Friends from '../components/Friends.vue'
import My from '../components/My.vue'
import TopList from '../components/TopList'
import PlayList from '../components/PlayList'
Vue.use(VueRouter)

const router = new VueRouter({
    //指定hash属性和组件的对应关系
    routes:[
        {path:'/',redirect:"/discover"},
        {path:'/discover',component:Discover,
        //通过children嵌套
        children:[
            {path:"toplist",component:TopList},
            {path:"playlist",component:PlayList},
        ]
    },
        {path:'/friends',component:Friends},
        {path:'/my',component:My},
    ]
})

export default router

然而这种方法对于重复性较高的,例如一个商品一个链接就很不方便
VUE支持动态路由,把地址可变部分定义为参数项,
{path:“/product/:id”,component:Product}

通过传参获取id的值

<template>
    <div>
        <h1>商品{{ $route.params.id }}</h1>
    </div>
</template>

还可以通过定义属性的值传参

<template>
    <div>
        <h1>商品{{ id }}</h1>
    </div>
</template>
<script>
export default {
    //name:'Product',
    props:["id"]
}
</script>
{   path:'/my',
            component:My,
            children:[
                {path:":id",component:Product,props:true},
           // {path:"playlist",component:PlayList},
            ]
        },

对product定义一个参数,然后路径中就把id作为参数传递

还可以通过编程式跳转,前面都是声明式跳转

导航守卫可以控制跳转的路由规则
相当于后端的拦截器


http://www.niftyadmin.cn/n/5342971.html

相关文章

java获取一个视频的时长

引言 在日常开发中&#xff0c;经常会遇到产品经理提出一个需求“上传视频”&#xff0c;而且还得显示出视频的播放时长&#xff0c;我们直接上最简单的代码 How to do 1.​​​​​​​提前引入包 <!--视频多媒体工具包 包含 FFmpeg、OpenCV--><dependency>&l…

基于SpringBoot Vue航空机票预订系统

大家好✌&#xff01;我是Dwzun。很高兴你能来阅读我&#xff0c;我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结&#xff0c;还为大家分享优质的实战项目&#xff0c;本人在Java项目开发领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#x…

Oracle 19c RAC集群管理 ---------关键参数以及常用命令

Oracle 19c RAC集群管理 ---------关键参数 Oracle 19C RAC 参数最佳实践 --开启强制归档 ALTER DATABASE FORCE LOGGING; --设置 30分钟 强制归档 ALTER SYSTEM SET ARCHIVE_LAG_TARGET1800 SCOPEBOTH SID*; --设置期望undo保持时间3h ALTER SYSTEM SET UNDO_RETENTION21600…

NLP深入学习(八):感知机学习

文章目录 0. 引言1. 感知机1.1 基本概念与结构1.2 学习策略 2. 感知机学习算法2.1 原始形式2.2 对偶形式 3. 参考 0. 引言 前情提要&#xff1a; 《NLP深入学习&#xff08;一&#xff09;&#xff1a;jieba 工具包介绍》 《NLP深入学习&#xff08;二&#xff09;&#xff1a…

Redis(发布订阅、事务、redis整合springboot、集成 Spring Cache)

目录 一.redis的发布订阅 1、什么 是发布和订阅 2、Redis的发布和订阅 3、发布订阅的代码实现 二.Redis事务 1.事务简介 1、在事务执行之前 如果监听的key的值有变化就不能执行 2、在事务执行之前 如果监听的key的值没有变化就能执行 3、Exec之前就出现错误 4、Exec之…

[Android] Android文件系统中存储的内容有哪些?

文章目录 前言root 文件系统/system 分区稳定性:安全性: /system/bin用来提供服务的二进制可执行文件:调试工具:UNIX 命令&#xff1a;调用 Dalvik 的脚本(upall script):/system/bin中封装的app_process脚本 厂商定制的二进制可执行文件: /system/xbin/system/lib[64]/system/…

计算机网络 第3章(数据链路层)

系列文章目录 计算机网络 第1章&#xff08;概述&#xff09; 计算机网络 第2章&#xff08;物理层&#xff09; 计算机网络 第3章&#xff08;数据链路层&#xff09; 文章目录 系列文章目录1. 数据链路层概述1.1 概述1.2 三个重要问题 2. 封装成帧2.1 介绍2.2 透明传输2.3 总…

开源进程/任务管理服务Meproc之事件插件开发

在Meproc中&#xff0c;用户可以根据自己的需要开发插件来处理某些任务流程的start和stop事件。 所有插件都应该放在events文件夹中。 让我们看一个例子。 events文件夹中有一个名为example.m的文件。 这就是我们要讨论的例子。 Sys Import(sys);Example {start(&proc…