VUE-router

news2024/11/17 12:57:30

七.Vue-router

1、什么是vue-router

vue-router是vue.js官方路由管理器。vue的单页应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。

传统页面切换是用超链接a标签进行切换。但vue里是用路由,因为我们用Vue做的都是单页应用,就相当于只有一个主的index.html页面,所以你写的<a></a>标签是不起作用的,你必须使用vue-router来进行管理。

2、 安装vue-router

vue-router是一个插件包,所以我们还是需要用npm来进行安装的。打开命令行工具,进入你的项目目录,输入下面命令。

npm install vue-router --save-dev 

如果你安装很慢,也可以用cnpm进行安装,如果你在使用vue-cli中已经选择安装了vue-router,那这里不需要重复安装了。

3、在 main.js中引入

在这里插入图片描述

4、vue-router的使用

4.1 给组件或页面定义路由

在这里插入图片描述

4.2 路由跳转的方式

方式1:

 <router-link to="{path:'/editUser',query:{id:user.id}}"></router-link>   

在这里插入图片描述

接收参数:

接收的页面中的vue对象中:  this.$route.query.id

方式2:

this.$router.push({path:'/users'})

在这里插入图片描述

完整案例:

创建News.vue组件

<template>
    <div>
        这是新闻列表页
        <li v-for="news in newsList" :key="news.id">
               <router-link :to="{path:'/newsInfo',query:{id:news.id}}"> {{news.title}}</router-link>
        </li>
    </div>
</template>

<script>

export default {
       name: "News",
       data:function(){
           return {
              newsList:[
                   {
                       id:"1",
                       title:"新闻1",
                       content:"新闻1的内容"

                   },
                   {
                        id:"2",
                       title:"新闻2",
                       content:"新闻2的内容"

                   }
              ]
           }
       }

}
</script>



创建NewsInfo.vue组件

<template>
    <div>
    {{news.content}}
        
    </div>
</template>

<script>

export default{

    name:"NewsInfo",
    data(){
        return {

            news:{
            id:"",
            title:"",
            content:""
            }
        }
    },
    mounted(){
         
         //获取传过来的参数id

          this.news.id= this.$route.query.id

          var newsList=[
                   {
                       id:"1",
                       title:"新闻1",
                       content:"新闻1的内容"

                   },
                   {
                        id:"2",
                       title:"新闻2",
                       content:"新闻2的内容"

                   }
              ]

              var index = newsList.findIndex( item => {
                        if(this.news.id == item.id){
                            return true;
                        }
                    });

             this.news=newsList[index]         

        

    }

}

</script>

设置路由:

import { createRouter, createWebHashHistory } from "vue-router";
//import Home from "../views/Home.vue";

const routes = [
 
  {
    path:"/",
    name:"News",
    component:()=>import("../views/News.vue")
  },
  {
    path:"/newsInfo",
    name:"NewsInfo",
    component:()=>import("../views/NewsInfo.vue")
  }
  
];

const router = createRouter({
  history: createWebHashHistory(),
  routes,
});

export default router;

设置App.vue主组件

<template>
  <div>
    <!-- <router-link to="/">Home</router-link> |
    <router-link to="/about">About</router-link> -->
     <!-- 展示当前路径对应的组件内容 -->
     <router-view />
  </div>
 
</template>

<style lang="scss">
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

#nav {
  padding: 30px;

  a {
    font-weight: bold;
    color: #2c3e50;

    &.router-link-exact-active {
      color: #42b983;
    }
  }
}
</style>

4.3 a和router-link的区别

a标签

点击a标签从当前页面跳转到另一个页面
通过a标签跳转,页面就会重新加载,相当于重新打开了一个网页

router-link

通过router-link进行跳转不会跳转到新的页面,不会重新渲染,它会选择路由所指的组件进行渲染

总结

通过a标签和router-link对比,router-link避免了重复渲染,不像a标签一样需要重新渲染减少了DOM性能的损耗

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

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

相关文章

K8s 前世今生与架构组件简析

k8s 前世 k8s 的前世是google 内部的Borg 系统&#xff0c;是一个作业调度平台&#xff0c;调度的对象是一个个进程。 Borg 本身也利用了容器化技术比如 Cgroups, Namespace 实现应用的隔离。 运行在线上的业务主要分为在线业务&#xff08;prod&#xff09;和离线业务(non-…

Netty实战与源码剖析(二)——Netty线程模型

1 线程模型基本介绍 不同的线程模式&#xff0c;对于程序的性能有很大的影响&#xff0c;Netty为何具有如此高的性能&#xff0c;很大程度上是得益于Netty采用的线程模型。 目前主流存在的线程模型有两种&#xff1a; 传统阻塞IO模型Reactor模型 然而根据Reactor的数量和处理…

零基础转行程序员,有哪些经验可以借鉴?

随着互联网行业的迅速发展&#xff0c;市场对于程序员的需求增大&#xff0c;越来越多的人开始转行到IT领域&#xff0c;程序员也不再基于计算机科学或软件工程等个别专业的毕业生&#xff0c;其他非计算机相关专业的&#xff0c;像学物理、数学、自动化&#xff0c;甚至英语、…

云原生丨DataX在数据迁移中的应用与实践

文章目录一、前言二、准备工作三、安装工具与数据迁移Demo安装工具与数据迁移三、使用Datax抽取移动云上的gauss数据库四、Datax工具逻辑说明整体框架核心模板介绍流程调度数据库类型插件读、写说明五、Datax工具参数说明SettingReader& writerjdbcUrlusernamepasswordtabl…

数据人PK也无人,为什么业务部门的数据需求都是急活?

**导读&#xff1a;**你是不是经常听到数据开发吐槽业务部门&#xff1a;我可以理解业务部门数据需求多&#xff0c;但为什么经常要得这么急呢&#xff1f; 作为一个数据开发者&#xff0c;可以回想一下&#xff0c;当初是怎么进入数据行业的。 是不是也是听一些大V忽悠&…

Java Swing JSlider:滑块组件

在前面的章节中&#xff0c;我们介绍了 Swing 设计简单界面所需的窗口、布局组件以及如何响应事件。Swing 还提供了很多高级组件&#xff0c;如菜单栏、工具栏、文件选择器、表格以及树等。使用这些高级组件可以实现更为复杂的布局&#xff0c;也可以使程序界面更加人性化&…

颜色分析.

介绍 宽光谱光源对许多光学系统都很重要&#xff0c;应用范围包括白光照明、分光计等。Fred中的颜色图像分析&#xff0c;是通过计算每个像素的色度坐标并在表面上显示生成的RGB值来生成颜色分布。此外&#xff0c;FRED还可以显示彩色色度图&#xff0c;并在用户移动光标时指…

CSS -- CSS选择器精讲(基础选择器,符合选择器,属性选择器,结构伪类选择器,伪选择器)

文章目录1 CSS基础选择器1.1 选择器的分类1.2 标签选择器1.3 类选择器1.4 id选择器1.5 通配符选择器1.6 基础选择器总结2 CSS的复合选择器2.1 什么是复合选择器2.2 后代选择器2.3 子选择器2.4 并集选择器2.5 伪类选择器2.6 链接伪类选择器2.7 :focus 伪类选择器2.8 复合选择器总…

正点原子-Linux嵌入式开发学习-第二期04

第十一讲&#xff1a;BSP工程管理 BSP管理其实就是以前学stm32一样的单独为led写.h和.c&#xff0c;并且文件夹有很多种 使用ubuntu的vscode创建bsp文件 第一步&#xff1a;新建bsp文件夹&#xff0c;在bsp文件夹新建各个外设或者功能的文件夹&#xff08;一定是在相应的文件夹…

nodejs+vue+elementui鲜花销售商城管理系统410

前台&#xff1a; (1) 用户注册&#xff1a;用户名&#xff0c;密码&#xff0c;确认密码&#xff0c;邮箱&#xff0c;手机号&#xff0c;真实姓名&#xff0c;收货地址 (2) 用户登录&#xff1a;用户名&#xff0c;密码&#xff0c;验证码 登录后在主页显示欢迎信息&am…

2022年保险行业和产品研究报告

第一章 行业概况 保险业是经营风险的特殊行业。保险是以契约形式确立双方经济关系&#xff0c;以缴纳保险费建立起来的保险基金&#xff0c;对保险合同规定范围内的灾害事故所造成的损失&#xff0c;进行经济补偿或给付的一种经济形式。 保险是专门以风险为经营对象、为人们提…

RK3568开发环境搭建

前面我给大家展示了RK3568的开发板&#xff0c;但是并没有对RK3568的芯片资源进行描述&#xff0c;这里简单给大家看下该芯片的资源&#xff0c;具体的请看瑞芯微官网https://www.rock-chips.com/ 对芯片有了写了解之后&#xff0c;下面就开始搭建开发环境&#xff0c;让我们早…

Databend 开源周报 #72

Databend 是一款强大的云数仓。专为弹性和高效设计&#xff0c;自由且开源。 即刻体验云服务&#xff1a;https://app.databend.com。 What’s New 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 Features & Improvements Multiple Catalogs …

操作系统:虚拟存储器 练习题(带有答案和解析)

文章目录1.虚拟存储器概述1.1.常规存储管理方式的特征和局部性原理1.2.虚拟存储器的定义和特征1.3.虚拟存储器的实现方法2.请求分页存储管理方式2.1.请求分页中的硬件支持2.2.请求分页中的内存分配3.页面置换算法3.1.最佳置换算法和先进先出置换算法3.2.最近最久未使用和最少使…

Spring事件处理

在实际业务开发中&#xff0c;有时候复杂性的业务之间需要解耦&#xff0c;常用的方法&#xff1a;同步、异步、MQ。但 MQ 重啊&#xff0c;非必要不提升架构复杂度。 针对同步和异步使用方式&#xff1a;&#xff11;.定时器 &#xff12;.Spring Event. Spring Event: 观察者…

网站反爬指南:政府网站篇

目录 前言 黑灰产为何盯上政务网站&#xff1f; 如何反爬&#xff1f; 前言 网络爬虫正在成为政务网站们最大的威胁之一。 随着网络安全被提升到国家层面&#xff0c;网站安全管理和防护日趋重要&#xff0c;政务网站既要确保网站信息的及时和准确&#xff0c;又要能应对网络…

15. Spring事务管理

1. Spring事务简介 事务作用&#xff1a;在数据层保障一系列的数据库操作同成功同失败Spring事务作用&#xff1a;在数据层或**业务层**保障一系列的数据库操作同成功同失败 2. 案例 2.1 需求和分析 需求&#xff1a;实现任意两个账户间转账操作需求微缩&#xff1a;A账户减…

如何使用 SAP OData 服务向 ABAP 服务器上传文件试读版

本教程到目前为止开发的 OData 图书管理服务&#xff0c;可以在 ABAP 系统里对图书数据进行增删改查。 本步骤我们继续介绍如何通过 SAP OData 服务&#xff0c;实现向 ABAP 系统上传文件的需求。我们采取 Postman 进行文件上传。 先看一下通过本文介绍的步骤&#xff0c;实现…

word基础功能应用:带圈字符如此妙法,好玩有趣

很多人把Word当成码字的记事本&#xff0c;其实它的逆天操作&#xff0c;远比你想象得还要强大。比如&#xff0c;Word中的“带圈字符”功能。 01、基本用法 Word中&#xff0c;点击【开始】-【带圈字符】按钮&#xff0c;即可启用“带圈字符”功能。 比如&#xff0c;我们可…

自然语言处理学习笔记-lecture10-机器翻译01

机器翻译的产生与发展 机器翻译 (machine translation, MT) 是用计算机把一种语言(源语言, source language) 翻译成另一种语言(目标语言, target language) 的一门学科和技术。 机器翻译的困难如下&#xff1a; 自然语言中普遍存在的歧义和未知现象机器翻译不仅仅是字符串的…