路由多视图单页应用router-link相关属性

news/2024/5/4 13:21:11/文章来源:https://blog.csdn.net/qq_64001795/article/details/127006050

目录

1 vue中文件及文件夹命名规范

2 SPA

2.1 SPA简介

2.2 SPA技术点

3 使用路由建立多视图单页应用

3.1 引入依赖库

3.2 创建自定义组件

相关知识点:

3.3 创建路由

3.3.1 什么是路由

3.3.2 定义路由

3.4 创建和挂载根实例

3.5 使用RouterLink和RouterView组件导航与显示

4 router-link相关属性

4.1 to

4.2 replace

4.3 append

4.4 tag

4.5 active-class

4.6 exact-active-class

4.7 event


1 vue中文件及文件夹命名规范

  1. 命名法
    驼峰式命名法(camelCase)
    短横线命名(kebab-case)全小写
    帕斯卡命名法(PascalCase)

  2. 文件夹命名
    kebab-case
    尽量使用名词,尽量使用一个单词

  3. *.js文件命名规范
    3.1 所有模块的主文件index.js全小写
    3.2 属于组件的.js文件,使用PascalBase风格
    3.3 其他类型的.js文件,使用kebab-case风格

  4. *.vue文件命名规范
    除index.vue之外,其他.vue文件统一用PascalBase风格

  5. *.less文件命名规范
    统一使用kebab-case命名风格

前三点比较重要,需要记住!!!

附录一:.less为后缀的文件是什么
1、less是什么:LESS 为 Web 开发者带来了福音,它在 CSS 的语法基础之上,引入了变量,Mixin(混入),
运算以及函数等功能,大大简化了 CSS 的编写,并且降低了 CSS 的维护成本,就像它的名称所说的那样,LESS 可以让我们用更少的代码做更多的事情。
2、为什么有less:CSS 是一门非程序式语言,CSS 需要书写大量看似没有逻辑的代码,不方便维护及扩展,不利于复用
3、less最最最最最最简单实例:使用@符号来定义变量

2 SPA

2.1 SPA简介

单页Web应用(single page application,SPA),就是只有一个Web页面的应用,是加载单个HTML页面,并在用户与应用程序交互时动态更新该页面的Web应用程序

  • 单页面应用程序:
    只有第一次会加载页面, 以后的每次请求, 仅仅是获取必要的数据.然后, 由页面中js解析获取的数据, 展示在页面中

  • 传统多页面应用程序:
    对于传统的多页面应用程序来说, 每次请求服务器返回的都是一个完整的页面

  • 优势
    减少了请求体积,加快页面响应速度,降低了对服务器的压力
    更好的用户体验,让用户在web app感受native app的流畅

2.2 SPA技术点

  • ajax
  • 锚点的使用(window.location.hash #)(页面内定位的技术)
  • hashchange 事件 window.addEventListener("hashchange",function () {})
    hashchange事件是html5新增的api,用来监听浏览器链接的hash值变化。当URL的片段标识符更改时,将触发hashchange事件

3 使用路由建立多视图单页应用

3.1 引入依赖库

建立一个基本html项目,创建一个demo页面并引入一下js库文件

<script src="js/vue.js"></script>
<script src="js/vue-router.min.js"></script>

3.2 创建自定义组件

创建vue组件有两种方式:

var MyComonent = Vue.component("button-counter", {...});
创建一个vue组件并赋给MyComponent变量const Home = Vue.extend({});
extend是构造一个组件的语法器. 你给它参数,他给你一个组件,然后这个组件你可以作用到Vue.component这个全局注册方法里,也可以在任意vue模板里使用

相关知识点:

js中const,var,let区别?分别写一个例子

创建一个Home组件和About组件

//组件名用PPascalCase风格
const Home = Vue.extend({//必须定义一个根元素作为容器,包裹模板中的内容元素template: '<div><h1>Home组件</h1><div>Home组件内容区</div></div>'
});const About = Vue.extend({//必须定义一个根元素作为容器,包裹模板中的内容元素template: '<div><h1>About组件</h1><div>About组件内容区</div></div>'
});

3.3 创建路由

3.3.1 什么是路由

vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。
传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,实际上就是组件的切换。
路由就是SPA(单页应用)的路径管理器。再通俗的说,vue-router就是我们WebApp的链接路径管理系统。

route和router的区别

  • route:路线
  • router:路由器
  • 路由器中包含了多个路线

3.3.2 定义路由

//定义路由,"/"代表根路径,路由中可以使用name属性,一遍情况不建议使用
var routes = [{path: '/home',component: Home},{path: '/about',component: About}
];//创建路由器实例
const router = new VueRouter({routes: routes
});

3.4 创建和挂载根实例

使用路由后,Vue实例的创建于以前会有一定的区别,原来使用el属性指定边界,使用路由后需要使用Vue实例$mount方法挂载根实例

//创建和挂载根实例
var vm = new Vue({//el: '#app',//将路由放入vue实例router: router,data: {ts: new Date().getTime()}
}).$mount("#app");

3.5 使用RouterLink和RouterView组件导航与显示

<div><router-link to="/home">go to Home</router-link><router-link to="/about">go to aboue</router-link>
</div>
<div><router-view></router-view>
</div>

<router-view></router-view>路由内容显示区域。

效果展示:

4 router-link相关属性

4.1 to

表示目标路由的链接

<router-link to="/home">Home</router-link><!-- 字符串-->
<router-link v-bind:to="'home'">Home</router-link><!-- 使用 v-bind 的 JS 表达式 -->

上面的示例已经使用,to既可以使用字符串,也可以使用js表达式

4.2 replace

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

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

如果配置了replace,则在点击该链接,将会导致history记录被清空,不能再执行回退。

vue中导航中的后退-前进-编程式导航

  • this.$router.go(-1) :代表着后退
  • this.$router.go(1):代表着前进
  • 切换到path为/home的路由
this.$router.push({    path:'/home'
});//或者使用path,推荐path
this.$router.push({    path:'/home'
});

示例一:编程式前进后退按键
1)在页面上加入前进和后退按钮,

<p><button @click="previous">前进</button><button @click="next">后退</button>
</p

2)添加事件处理程序

methods: {//前进previous: function() {this.$router.go(1);},//后退next: function() {this.$router.go(-1);}
}

vue的 $
除了数据属性,Vue 实例还暴露了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开

效果展示: 

示例二:切换到指定路由
添加一个“回家”按钮。

<button @click="gotohome">回家</button>
gotohome: function() {console.log("go to home");this.$router.push({path: '/home'});
}

效果展示:

示例三,设置默认显示的组件
这个很简单,只要将需要默认显示的组件对应的路由的path设置为"/"即可

//定义路由表
var routes = [//默认显示home{path:'/', component:Home}, {path:'/home', component:Home},{path:'/about', component:About}
];

示例四:
如果配置了replace,则在点击该链接,将会导致history记录被清空,不能再执行回退。
例如: 将

<router-link to="/home">Home</router-link>

加入replace属性,修改为:

<router-link to="/home" replace>Home</router-link>

通过测试可以看到,点击home后,history记录被清空。所以一般不用。

4.3 append

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

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

4.4 tag

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

<router-link to="/foo" tag="li">foo</router-link>

<!-- 渲染结果 -->
<li>foo</li>

4.5 active-class

设置链接激活时使用的 CSS 类名

<style>.activeClass{color: #FF0000;}
</style>

4.6 exact-active-class

配置当链接被精确匹配的时候应该激活的class

4.7 event

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

<router-link v-bind:to = "{ path: '/route1'}" event = "mouseover">Router Link 1</router-link>

 效果展示:

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

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

相关文章

线程池基本知识

文章目录1 问题背景2 前言3 线程池是什么4 线程池核心设计与实现4.1 总体设计4.2 运行机制4.3 生命周期管理4.4 任务执行机制4.4.1 任务调度4.4.2 任务缓冲4.4.3 任务申请4.4.4 任务拒绝4.5 Worker线程管理4.5.1 Worker线程1 问题背景 前面总结了工作中的解决方案——电商项目之…

EEG巨型分析I:跨研究的频谱和振幅特征

导读 通过汇集多项研究的统计结果(元分析)&#xff0c;fMRI领域取得了重大成就。最近&#xff0c;fMRI标准化工作的重点是实现跨研究(巨型分析)的fMRI原始数据的联合分析&#xff0c;以期获得更详细的见解。然而&#xff0c;目前尚不清楚在EEG领域的此类分析是否可能或同样富有…

公众号如何搭建使用查题功能的方法

公众号如何搭建使用查题功能的方法 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&a…

Vue入门【三】-- 详解computed计算属性

目录 computed: ♡ ‧₊˚ 基本使用 ‧₊˚ ♡ ♡ ‧₊˚语法‧₊˚ ♡ ♡ ‧₊˚效果‧₊˚ ♡ ♡ ‧₊˚ 面试问点 ‧₊˚ ♡ computed与methods的区别&#xff1a; computed与watch的区别&#xff1a; computed: 首先我们要知道computed计算属性是什么&#xff0c;在v…

我是一名开发人员,但我不会教我的孩子编程

编程需要的不仅仅是儿童书籍中教授的简单干巴巴的语言。 长按关注《Python学研大本营》&#xff0c;加入读者群&#xff0c;分享更多精彩 在最近的一次深夜公式跑中&#xff0c;我路过一大堆关于教孩子编程的书籍。我在周围看过这些书&#xff0c;但从来没有这么大的针对小学生…

STM32时钟系统和TIMER配置(溢出中断/PWM)实例

目录&#xff1a; 1. STM32时钟系统 2. STM32的定时器典型配置之溢出中断 3. STM32的定时器典型配置之PWM输出 1. STM32时钟系统 &#xff08;1&#xff09;Clock tree 可以在官方手册(Stm32x-series-Reference-manual)的clock tree中可以对相应MCU的时钟系统有个大致了解…

数字信号处理——多速率信号处理(1)

目录 引言 1、抽取 MATLAB仿真代码 仿真结果 抽取滤波器 2、内插

《关于我摸鱼一天后搞定PyCharm这件事》Python环境配置

Anaconda部署 1.下载最新版匹配电脑的版本 我是 WIN-x64 下载Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 我是 Anaconda3-2022.05-Windows-x86_64 下载 社区版本Pycharm Download PyCharm: Python IDE for Professional Develo…

从零玩转jQuery(基础篇)

1.前言 &#xff08;window.onload和jQuery的相关介绍&#xff09; 分析一下&#xff0c;元素js的缺点: 1.不能添加多个入口函数&#xff08;window.onload),如果添加了多个&#xff0c;后面的会把前面的给覆盖。 2.原生js的api名字都太长太难记。 3.原生js有的时候代码冗余。 …

Maven坐标查找方法及Maven-Search 插件的使用(保姆级教学)

目录坐标的概念获取坐标方法一获取坐标方法二坐标的概念 坐标组成是groupid,artifiactld,version。坐标概念来自数学。 坐标作用:确定资源的&#xff0c;是资源的唯一标识。在maven中&#xff0c;每个资源都有坐标。坐标值是唯一的。简称叫gav。 拿servlet依赖举例 <!--serv…

nacos 简介和使用

Nacos 是阿里巴巴开源项目&#xff0c;用于构建微服务应用的服务发现、配置管理和服务管理。 在微服务项目中不同模块之间服务调用时&#xff0c;实现服务注册与发现。 Nacos 使用&#xff1a; Nacos 是java开发的&#xff0c;依赖 Java 环境来运行 Nacos的下载 https://git…

cobbler部署

cobbler部署 #先关闭防火墙和selinux [root@localhost ~]# systemctl disable firewalld [root@localhost ~]# setenforce 0 //cobbler服务,selinux必须得是disabled状态,所以要重启 [root@localhost ~]# vim /etc/selinux/config SELINUX=disabled [root@localhost ~]# reb…

BUUCTF-社团考核

目录 1.[CISCN2019 华东南赛区]Web4 2.[GWCTF 2019]枯燥的抽奖 3.[NCTF2019]Fake XML cookbook 4.[SCTF2019]Flag Shop 5.[GWCTF 2019]mypassword 6.[BSidesCF 2019]Kookie 7.[WUSTCTF2020]朴实无华 8.[网鼎杯 2020 白虎组]PicDown 9.[CISCN 2019 初赛]Love Math 10.攻…

深入ArrayList()源码

深入ArrayList()源码 jdk1.8 java.util; 扩容机制 新数组都将替代旧数组&#xff0c;旧数组作为垃圾被回收 ArrayList() 会使用长度为零的数组 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA {};public ArrayList() {this.elementData DEFAULTCAPACITY…

采用 ALSTM 模型的温度和降雨关联预测研究论文学习记录

为了准确和及时预测局部区域的降雨及温度&#xff0c;提出了一种基于 Attention 和 LSTM 组合模型( ALSTM) 的关联多值预测算法。该算法利用天气时间序列中 的前期数据&#xff0c;对下一小时的降雨量和温度进行关联预测&#xff0c;以此实现对天气要素的多值预测。该算法首先对…

一个项目带你走进接口自动化测试

文章目录前言一、项目环境搭建二、项目分析三、框架搭建1、解决登录问题、获取token2、熟悉项目的接口请求方式、二次封装requests请求3、缓解业务请求接口参数臃肿4、重新封装logging日志5、通用方法编写四、编写自动化脚本场景业务需求单接口业务需求五、生成测试报告六、写在…

CSDN线上竞赛编程第六期参赛心得

CSDN编程竞赛报名地址&#xff1a;https://edu.csdn.net/contest/detail/16 &#xff08;请不要删掉此地址&#xff09; CSDN线上竞赛编程第六期参赛心得前言/背景大赛简介参赛流程参赛经历解题思路1、题目名称&#xff1a;严查枪火2、题目名称&#xff1a;鬼画符门3、题目名称…

HDMI/DVI____TMDS编码

一.编码步骤:基本方法:取第一位数据为初值,接下来输入的每一位与前一导出的位(根据判断条件)进行异或XOR或者同或XNOR(最小化传输);最后选择性反转这9bit数据(DC平衡处理)。 ①DE为高电平时,对8位RGB数据编码,第9bit表示采用了XOR / XNOR ,第10bit表示是否翻转。 …

04代码

import datetime #定义一个列表 mot=["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别无选择。","今天星期二:\n含泪播种的人一定能笑着收获。","今天星期三:\n作对的事情比把事情做对更重要。","今天星期四:\n命运给予我们的不是失…

【NLP】自然语言处理的序列建模

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…