05-Vue路由

05-Vue路由

  • 前言
  • vue路由介绍
    • 配置路由信息
    • vue实例使用vue路由
      • `router-link`
    • `<router-link>` Props
      • to
      • replace
      • append
      • tag
      • active-class
      • exact
      • event
      • exact-active-class
      • aria-current-value
      • `router-view`
    • `<router-view>` Props
      • name

前言

我们接着上一篇文章 04-Vue:ref获取页面节点–很简单 来讲。


下一篇文章 06-Vue路由守卫

vue路由介绍

用 Vue + Vue Router 创建单页应用非常简单:通过 Vue.js,我们已经用组件组成了我们的应用。当加入 Vue Router 时,我们需要做的就是将我们的组件映射到路由上,让 Vue Router 知道在哪里渲染它们。

下面是一个基本的例子:

首先使用npm i vue-router@3.5.2 -S导入npm包

配置路由信息

创建/src/router/index.js

// 1、引入vue,vueRouter
import Vue from 'vue'
import VueRouter from 'vue-router'
// 2、引入vue页面文件
import HomeView from '../views/HomeView.vue'// 3、使用路由
Vue.use(VueRouter)// 4、创建路由信息
const routes = [// 5、默认路由{path: '/',  //默认路由路径redirect: '/home',  //redirect 表示重定向到指定path},{path: '/home',name: 'home',component: HomeView // 页面文件},{path: '/about',name: 'about',// 懒加载页面component: () => import('../views/AboutView.vue'),},{path: '/login',name: 'login',// 懒加载页面component: () => import('../views/LoginView.vue'),}
]// 路由实例化
const router = new VueRouter({mode: 'history',base: process.env.BASE_URL,routes
})// 6、导出路由实例
export default router

在index.js中我们创建了一个vue路由的实例对象router,最后使用export导出了这个实例。

vue实例使用vue路由

接下来我们需要在main.js中使用它

import Vue from 'vue'
import App from './App.vue'
// 导入vue路由实例
import router from './router'Vue.config.productionTip = falsenew Vue({// 使用vue路由实例router,render: h => h(App)
}).$mount('#app')

这样我们就配置好了vue路由相关内容

router-link

请注意,我们没有使用常规的 a 标签,而是使用一个自定义组件 router-link 来创建链接。这使得 Vue Router 可以在不重新加载页面的情况下更改 URL,处理 URL 的生成以及编码。我们将在后面看到如何从这些功能中获益。

<router-link> 组件支持用户在具有路由功能的应用中 (点击) 导航。 通过 to 属性指定目标地址,默认渲染成带有正确链接的 <a> 标签,可以通过配置 tag 属性生成别的标签.。另外,当目标路由成功激活时,链接元素自动设置一个表示激活的 CSS 类名。

<router-link> 比起写死的 <a href="..."> 会好一些,理由如下:

  • 无论是 HTML5 history 模式还是 hash 模式,它的表现行为一致,所以,当你要切换路由模式,或者在 IE9 降级使用 hash 模式,无须作任何变动。
  • 在 HTML5 history 模式下,router-link 会守卫点击事件,让浏览器不再重新加载页面。
  • 当你在 HTML5 history 模式下使用 base 选项之后,所有的 to 属性都不需要写 (基路径) 了。

<router-link> Props

to

  • 类型: string | Location

  • required

    表示目标路由的链接。当被点击后,内部会立刻把 to 的值传到 router.push(),所以这个值可以是一个字符串或者是描述目标位置的对象。

    <!-- 字符串 -->
    <router-link to="home">Home</router-link>
    <!-- 渲染结果 -->
    <a href="home">Home</a><!-- 使用 v-bind 的 JS 表达式 -->
    <router-link v-bind:to="'home'">Home</router-link><!-- 不写 v-bind 也可以,就像绑定别的属性一样 -->
    <router-link :to="'home'">Home</router-link><!-- 同上 -->
    <router-link :to="{ path: 'home' }">Home</router-link><!-- 命名的路由 -->
    <router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link><!-- 带查询参数,下面的结果为 /register?plan=private -->
    <router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link
    >
    

replace

  • 类型: boolean

  • 默认值: false

    设置 replace 属性的话,当点击时,会调用 router.replace() 而不是 router.push(),于是导航后不会留下 history 记录。

    <router-link :to="{ path: '/abc'}" replace></router-link>
    

append

  • 类型: boolean

  • 默认值: false

    设置 append 属性后,则在当前 (相对) 路径前添加基路径。例如,我们从 /a 导航到一个相对路径 b,如果没有配置 append,则路径为 /b,如果配了,则为 /a/b

    <router-link :to="{ path: 'relative/path'}" append></router-link>
    

tag

  • 类型: string

  • 默认值: "a"

    有时候想要 <router-link> 渲染成某种标签,例如 <li>。 于是我们使用 tag prop 类指定何种标签,同样它还是会监听点击,触发导航。

    <router-link to="/foo" tag="li">foo</router-link>
    <!-- 渲染结果 -->
    <li>foo</li>
    

active-class

  • 类型: string

  • 默认值: "router-link-active"

    设置链接激活时使用的 CSS 类名。默认值可以通过路由的构造选项 linkActiveClass 来全局配置。

exact

  • 类型: boolean

  • 默认值: false

    “是否激活”默认类名的依据是包含匹配。 举个例子,如果当前的路径是 /a 开头的,那么 <router-link to="/a"> 也会被设置 CSS 类名。

    <router-link to="/acabcde"></router-link><router-link to="/ac"></router-link>
    

    按照这个规则,每个路由都会激活 <router-link to="/">!想要链接使用“精确匹配模式”,则使用 exact 属性:

    <!-- 这个链接只会在地址为 / 的时候被激活 -->
    <router-link to="/" exact></router-link>
    

    查看更多关于激活链接类名的例子可运行(opens new window)

event

  • 类型: string | Array<string>

  • 默认值: 'click'

    声明可以用来触发导航的事件。可以是一个字符串或是一个包含字符串的数组。

exact-active-class

  • 类型: string

  • 默认值: "router-link-exact-active"

    配置当链接被精确匹配的时候应该激活的 class。注意默认值也是可以通过路由构造函数选项 linkExactActiveClass 进行全局配置的。

aria-current-value

  • 类型: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false'

  • 默认值: "page"

    当链接根据精确匹配规则激活时配置的 aria-current 的值。这个值应该是 ARIA 规范中允许的 aria-current 的值 (opens new window)。在绝大多数场景下,默认值 page 应该是最合适的。

router-view

router-view 将显示与 url 对应的组件。你可以把它放在任何地方,以适应你的布局。

<router-view> 组件是一个 functional 组件,渲染路径匹配到的视图组件。<router-view> 渲染的组件还可以内嵌自己的 <router-view>,根据嵌套路径,渲染嵌套组件。

其他属性 (非 router-view 使用的属性) 都直接传给渲染的组件, 很多时候,每个路由的数据都是包含在路由参数中。

<router-view> Props

name

  • 类型: string

  • 默认值: "default"

    如果 <router-view>设置了名称,则会渲染对应的路由配置中 components 下的相应组件。查看 命名视图 中的例子。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/13835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RedHat9 | 配置转发DNS服务器

一、实验环境 1、介绍 转发服务器&#xff08;Forwarding Server&#xff09;接收查询请求&#xff0c;但不直接提供DNS解析&#xff0c;而是将所有查询请求发送到另外的DNS服务器&#xff0c;将查询的结果返回后保存到缓存中。如果没有指定转发服务器&#xff0c;DNS服务器会…

【Unity Shader入门精要 第8章】透明效果(二)

1. 透明度测试 透明度测试的原理是将片元的 Alpha 值与某个指定的阈值进行比较&#xff0c;当 Alpha 超过阈值时&#xff0c;该片元正常显示&#xff0c;若 Alpha 值低于指定的阈值&#xff0c;则将该片元丢弃。准确来讲&#xff0c;透明度测试并不是为了渲染一种半透的效果&a…

9 html综合案例-注册界面

9 综合案例-注册界面 一个只有html骨架的注册页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>…

1255: 石子合并

时间限制: 1 Sec 内存限制: 128 MB 提交: 1456 解决: 779 [提交] [状态] [讨论版] [命题人:外部导入] 题目描述 现在有n堆石子&#xff0c;你每次可以挑任意两堆将其合并成一堆&#xff0c;代价是两堆石子的数量和。可知经过n-1次合并后只剩下一堆石子&#xff0c;现在要求总…

LabVIEW机器视觉怎样在智能制造中实现高精度质量控制?

在智能制造中&#xff0c;LabVIEW&#xff08;Laboratory Virtual Instrument Engineering Workbench&#xff09;机器视觉系统能够通过以下方式实现高精度质量控制&#xff1a; 1. 图像采集与预处理 LabVIEW利用高分辨率相机和图像传感器来采集产品图像。通过使用LabVIEW的图…

stable diffusion webui prompt generator and translator

主要关注一些stable diffusion中的prompt的翻译器,prompt有很多优化的算法,本身prompt优化也是比较好的方向,这块主要有类似beautifulprompt之类算法,包括fooocus中内置了一个基于GPT2的语言模型来提供更好的prompt,这类的插件在git上有很多,对于目前的很多线上的图片生成…

PostgreSQL如何监控备库延迟

方案1&#xff1a; 主库查询 SELECT * FROM pg_stat_replication; NOTE1&#xff1a;PostgreSQL 10及以后版本 pg_stat_replication视图增加了write_lag&#xff0c;flush_lag&#xff0c;replay_lag。分别表示从库wal日志写入(写入到操作系统缓存)延迟&#xff0c;从库wal日…

头歌03-最优二叉查找树

""" 题目:给定n个互异的关键字组成的序列K=<k1,k2,...,kn>,且关键字有序(k1<k2<...<kn),从这些关键字中构造一棵二叉查找树。对每个关键字ki,每次搜索到的概率为pi。还有n+1个“虚拟键”d0,d1,...,dn,他们代表不在K的值。d0代表所有小于k…

IS-IS基本配置 IS-IS邻接关系

一.IS-IS基本配置 原理概述 和 OSPF 路由协议一样&#xff0c; IS-IS 也是一个应用非常广泛的 IGP 路由协议&#xff0c;很多 ISP 网络、特别是大型的ISP网络都部署了IS-IS网络协议。 RIP 、 OSPF 等许多 IGP 都是针对 IP ( Internet Protocol &#xff09;这个网络层协议而开…

php种调用jodConverter+ openoffic实现word转pdf

安装java环境 jdk文件 jdk-8u221-linux-x64.tar.gz将压缩包移到指定目录 sudo mv jdk-8u221-linux-x64.tar.gz /usr/local/ #解压 cd /usr/local sudo tar -zxvf /usr/local/jdk-8u221-linux-x64.tar.gz 配置java环境变量 sudo vim /etc/profile#在文件的最后添加如下内容…

二、信号连接槽函数

需求&#xff1a;点击Button按钮&#xff08;下班&#xff09;&#xff0c;label显示淦饭 信号发出者&#xff1a;Button 发送的信号&#xff08;signals&#xff09;&#xff1a;被点击 信号接收者&#xff1a;label 信号的处理&#xff08;slots&#xff09;&#xff1a;显示…

0基础安装 composer

解决&#xff1a; composer 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 php composer.phar可以运行 安装环境&#xff1a;系统w11 官网地址&#xff1a;Composer 1.安装composer 1.1打开命令行窗口 在命令行窗口里&#xff0c;右键是粘贴&#xff0…

精准安全运维,统信UOS服务器版V20(1070)漏洞修复指南丨年度更新

随着信息安全威胁的不断升级&#xff0c;操作系统的安全性已成为企业运维的关键要素。 为了确保业务运行环境的安全无忧&#xff0c;统信软件持续致力于技术创新和优化&#xff0c;并于日前重磅推出了统信UOS服务器版V20&#xff08;1070&#xff09;。该系统提供了高频补丁更…

Excel模板计算得出表格看板

背景 表格看板及导出&#xff0c;单元格时间年是根据筛选器时间变化的 较往年和往年是计算单元格 思路 1.通过excel模板来把数据填入excel再数据清洗得到数据返回前端 2.数据填充&#xff0c;通过行列作为key 列如&#xff1a;key整体20241月&#xff0c;根据key匹配数据填…

马蹄集 oj赛(双周赛第二十七次)

目录 栈的min 外卖递送 奇偶序列 sort 五彩斑斓的世界 括号家族 名次并列 栈间 双端队列 合并货物 逆序对 活动分组 栈的min 难度:黄金巴 占用内存:128 M时间限制:1秒 小码哥又被安排任务了&#xff0c;这次他需要要设计一个堆栈&#xff0c;他除了可以满足正常的栈…

半导体测试基础 - AC 参数测试

AC 测试确保 DUT 的时特性序满足其规格需求。 基本 AC 参数 建立时间(Setup Time) 建立时间指的是在参考信号(图中为 WE)发生变化(取中间值 1.5V)前,为了确保能被正确读取,数据(图中为 DATA IN)必须提前保持稳定不变的最短时间。在最小建立时间之前,数据可以随意变…

计算机以及网络协议中常用16进制的原因

一、计算机为什么需要十六进制&#xff1f; 实际上计算机本身是不需要十六进制的&#xff0c;计算机只需要二进制&#xff0c;需要十六进制的是人。 每个十六进制中的数字代表4个比特&#xff0c;你可以非常直观的从十六进制中知道对应的二进制是啥&#xff0c;比如给定一个十…

第八届“英拿科技杯”上海高校金马程序设计联赛暨东华大学邀请赛——源石虫(基础DP)

题源 源石虫 &#xff08;小声哔哔&#xff1a;这题当时脑子抽了死活没想到是DP&#xff0c;一直用贪心试&#xff0c;拿来凑个DP专题的数&#xff09; 代码 #include <bits/stdc.h> using namespace std; using ll long long; #define For for (ll i 1; i < n; …

ROS | 实现SLAM的功能

用launch文件启动Hector_Mapping的建图功能 1.引入launch文件 2.args是引入的设置好的rviz文件 Hector_Mapping建图的参数设置

141.字符串:重复的字符串(力扣)

题目描述 代码解决 class Solution { public:// 计算字符串s的next数组&#xff0c;用于KMP算法void getNext(int *next, const string& s){int j 0; // j是前缀的长度next[0] 0; // 初始化next数组&#xff0c;第一个字符的next值为0for (int i 1; i < s.size(); …