说说Vue-Router和Vue组件中的name属性的使用区别

news2024/11/16 11:45:59

目录

⏬ Vue路由匹配规则routes中的name属性的使用

1. 指定页面路由,并传递参数

2. 获取组件的name值,以供页面使用

3. 同个路由,渲染多个视图

⏬ vue组件中name的使用

1、组件递归操作

 2、配合keep-alive对组件缓存做限制

 3、在dev-tools中使用

❣️ 结论:2者没直接联系,各有各的作用!


⏬ Vue路由匹配规则routes中的name属性的使用

在讲vue-router中name使用之前我们需要先明白几点:

const routes = [{
  path:'/Home',
  component:HomeCom,
  name:'HomeName'
}]

👋🏻 在单页面应用中,网页具体路径显示是由vue-router配置中 path 决定的,path设置的是什么就显示什么,和name无关。

👋🏻 不同路由路径下页面渲染的内容,是根据component所对应的组件来进行渲染的,和name无关。

👋🏻 其实name就相当于给你的path取个别名,方便使用,路由并不是一定要设置name值。(如果不设置name,vue-router默认name值为 default)

注意:当我们使用params传参时,在路由里一定也要使用冒号" : "来匹配对应的参数,不然在刷新页面的时候参数将会丢失。——{ name:'LiantongName', path: '/liantong/:id',  component: Liantong }  ——参考:如何定义动态路由

常见的几种用途

1. 指定页面路由,并传递参数

// 路由代码配置
{
  path:'/liantong/:id',
  component:Liantong,
  name:'LiantongName'
}

<!-- 页面导航跳转 -->
<router-link :to="{name:'LiantongName',params:{id:100}}">
  <el-menu-item index="/liantong">
    <i class="el-icon-menu"></i>
    <span slot="title">联通数据</span>
  </el-menu-item>
</router-link>

其实在这里使用 <router-link to="/liantong"> 同样可以实现页面导航跳转,但是这样的话就不能直接传递params参数了。

2. 获取组件的name值,以供页面使用

// 路由代码配置 
{
  path:'/Yidong',
  component:Yidong,
  name:'我是移动name'
}

<!-- 页面渲染 -->
<template>
  <div class='container'>
    <h3>{{$route.name}}</h3>
  </div>
</template>

当针对不同页面渲染不同菜单并显示菜单名的时候,我们可以把菜单名赋值给路由name,然后进行相应处理。

3. 同个路由,渲染多个视图

有时候,我们对于一个路由,采用多个视图来渲染,此时就需要视图name值来进行标记。不过此时要注意,在路由对象中要把component 改为components对象。

// 路由代码配置 
{
  path:'/Dianxin',
  components:{
    default: DianxinOne, //default 默认的router-view名字
    DianxinTwo: DianxinTwo,
    DianxinThr: DianxinThr
  },
  name:'Dianxin'     
},

<div>
   <el-main>
      <router-view></router-view> //渲染默认DianxinOne组件
      <router-view name="DianxinTwo"></router-view> //渲染DianxinTwo组件
      <router-view name="DianxinThr"></router-view> //渲染DianxinThr组件
   </el-main>
</div>

以上就是vue-router中name的使用总结,如有错误,欢迎指正!

⏬ vue组件中name的使用

官方文档指出:name只有作为组件选项时起作用。我的理解就是在vue中,name属性是和组件息息相关的,只有在需要处理组件方面的问题才会牵扯到name属性。

常见的几种用途 

1、组件递归操作

vue允许组件模板调用自身,这在日常需求中也时有出现,此时我们就可以根据组件的name,来进行操作。

示例如下:

<!-- 父组件 -->
<div class="container">
  <ul>
    <child-tree :list="comRecursive" v-if="comRecursive.length"></child-tree>
  </ul>
</div>

data(){
  return {
    comRecursive :[
      {
        name:'第一层内容1',
        childArr:[
          {
            name:'第二层内容1'
          },
          {
            name:'第二层内容2',
            childArr:[
              {name:'第三层内容1'}
            ]
          }
        ]
      },
      {
        name:'第一层内容2'
      },
      {
        name:'第一层内容3'
      }
    ]
  }
}

<!-- 子组件 -->
<template>
  <div class="container">
    <li v-for="(item,index) in list" :key="index">
      {{item.name}}
      <template v-if="item.childArr">
        <ul>
          <ChildTreeName :list="item.childArr"/>
        </ul>
      </template>
    </li>
  </div>
</template>   
<script>
export default {
  name:'ChildTreeName',
  props:{
    list:{
      type:Array,
      default:[]
    }
  }
}
<script>

执行结果:

如上图所以,当我们需要组件嵌套自身的时候,此时在组件内部就是通过name值来调用。值得注意的时候,在做组件递归的时候一定要处理好出口,避免造成死循环。

 2、配合keep-alive对组件缓存做限制

配合keep-alive对组件缓存做限制(include/exclude="name"),我们知道 keep-alive的 include和exclude 允许有条件的对组件进行缓存,其中include和exclude所匹配的就是组件的name值。

示例如下:

<!-- 把除了组件名是 Liantong,Dianxin 的组件缓存起来 -->
<keep-alive exclude="Liantong,Dianxin">
  <router-view></router-view>
</keep-alive>

 3、在dev-tools中使用

在开发中我们经常需要对代码进行调试,在dev-tools中组件是以组件name进行显示的,这样更有语义化,方便我们快速定位到我们需要审查的位置,结构更清晰明了。比如用途1中的实例:

以上就是vue中name的使用总结,如有错误,欢迎指正!

❣️ 结论:2者没直接联系,各有各的作用!

Vue和Vue-Router中的name没有直接联系,是两个不同的概念!

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

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

相关文章

SpringBoot---错误处理机制

PostManHttp请求模拟工具&#xff0c;软件下载链接如下 PostMan下载链接 如果是其他客户端&#xff0c;默认响应一个JSON数据 原理-----SpirngMVC错误处理的自动配置 可以参照ErrorMvcAutoConfiguration&#xff1b;错误处理的自动配置&#xff1b; 给容器中添加了以下组件: …

基于51单片机的多功能电子时钟设计

设计任务&#xff1a; 1、设计任务&#xff1a;利用单片机、时钟芯片 DS1302、温度传感器 DS18B20、1602 液晶 等实现日期、时间、温度的显示即一个简单的万年历。 2、设计要求 &#xff08;1&#xff09;通过 DS1302 能够准确的计时&#xff0c;时间可调并在液晶上显示出来…

RK3568平台开发系列讲解(驱动基础篇)Linux内核面向对象思想之封装

🚀返回专栏总目录 文章目录 一、链表的抽象与封装二、设备管理模型的抽象与封装三、总线设备模型的抽象与封装沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux内核虽然是使用C语言实现的,但是内核中的很多子系统、模块在实现过程中处处体现了面向对象编程思想。…

动态规划:将题目转换为01背包问题

文章目录494. 目标和474. 一和零494. 目标和 力扣传送门&#xff1a; https://leetcode.cn/problems/target-sum/ 题目描述&#xff1a; 给你一个整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 ‘’ 或 ‘-’ &#xff0c;然后串联起所有整数&#xff0c;可以…

easyrecovery2023最新免费版电脑数据恢复软件使用教程

easyrecovery2023版能实现多种不同格式的完成修复和进程的解决&#xff0c;能进行数据的操作和保存解决完成&#xff0c;通过不同的内容进行操作&#xff0c;能解决大部分的使用问题&#xff0c;能安全的进行保存。easyrecovery免安装版对于多种格式下的内容&#xff0c;能对多…

nacos注册中心和配置中心

nacos注册中心和配置中心 nacos 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 nacos官方文档&#xff1a;https://nacos.io/zh-cn/ 相关概念&#xff1a;https://nacos.io/zh-cn/docs/architecture.html nacos是AP架构,注重可用性和分区容错性&#…

腾讯云双十二服务器2核2G、2核4G、4核8G、8核16G、16核32G配置价格表出炉

现在腾讯云服务器2核2G、2核4G、4核8G、8核16G、16核32G配置价格表已经出来了&#xff0c;大家可以参考一下。腾讯云轻量应用服务器为轻量级的云服务器&#xff0c;使用门槛低&#xff0c;按套餐形式购买&#xff0c;轻量应用服务器套餐自带的公网带宽较大&#xff0c;4M、6M、…

​软件测试之“支付功能”测试

01 测试思维 要分析测试点之前&#xff0c;我们先来梳理一下测试思维。总结来说&#xff0c;任何事物的测试思路都可以总结如下&#xff1a; 第一步&#xff1a;梳理产品的核心业务流程&#xff1a;明白这是个什么项目&#xff0c;实现了什么业务&#xff0c;以及是怎么实现的…

电动汽车电池换电站选址与定容(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f389;作者研究&#xff1a;&#x1f3c5;&#x1f3c5;&#x1f3c5;主要研究方向是电力系统和智能算法、机器学…

python学习笔记(13)---(IO对象序列化)面向对象

目录 面向对象---第十一章 IO对象序列化 1.IO流&#xff08;IO stream&#xff09; 2.open&#xff08;&#xff09;方法 3.写入方法&#xff1a;write() 4.对象序列化 面向对象---第十一章 IO对象序列化 1.IO流&#xff08;IO stream&#xff09; &#xff08;1&…

编译原理实验三:算符优先分析算法的设计与实现

实验三 算符优先分析算法的设计与实现 一、 实验目的 根据算符优先分析法&#xff0c;对表达式进行语法分析&#xff0c;使其能够判断一个表达式是否正确。通过算符优先分析方法的实现&#xff0c;加深对自下而上语法分析方法的理解。 二、 实验要求 1、输入文法。可以是如下…

Java 图片上传后为什么会自动旋转90度?

问题&#xff1a; 用户反馈上传后的图片方向不对&#xff0c;起初怀疑是本身图片方向有问题&#xff0c;但是用windows图片查看器打开图片方向是"正常"显示的? 分析&#xff1a; windows默认的图片查看器已经帮我们自动旋转展示了&#xff0c;我们在手机横拍或者扫…

【Vue核心】7.事件处理

事件处理的基本使用 绑定监听 v-on:xxx“fun” xxx“fun” xxx“fun(参数)” 默认事件形参: event 隐含属性对象: $event 绑定方法说明 使用v-on:xxx 或xxx绑定事件,其中xxx是事件名;事件的回调需要配置在methods对象中,最终公在vm上;methods中配置的函数,不要用箭头函…

python 调试IGH库

如何通过python来调试IGH的库呢&#xff1f; 可以使用如下的代码&#xff0c;测试请求主站&#xff0c;把主站变成激活状态。其他的函数也可以类似的一步一步调用。 结果如下&#xff1a; from ctypes import * ighCDLL("/home/cheni/lichuan_bujin/libethercat.so&quo…

开传奇大概需要什么条件

《热血传奇》是盛趣游戏2001年推出的一款大型多人在线角色扮演游戏&#xff08;MMORPG&#xff09;。 该游戏具有战士、魔法师和道士三种职业&#xff0c;所有情节的发生、经验值取得以及各种打猎、采矿等活动都是在网络上即时发生。 《热血传奇》包括白天、黑夜、贸易、物品等…

c++多模块化划分算法MMM(单链接、全链接、均链接)

文章目录题目1c代码一、实验目的二、实验描述3.1 题目13.1.1 单链接3.1.2 全链接3.1.3 均值链接3.1.4 划分结果统计&#xff1a;3.2 题目23.2.1 单链接3.2.2 全链接3.2.3 均值链接3.2.4 划分结果统计&#xff1a;题目2c代码github地址 代码地址 题目1c代码 #include<cstdi…

关于Servlet编程(2)

1.常用类的关键API介绍 Servlet中常见的类有三个.介绍过了HttpServlet类.我们再来看看另外两个. HttpServletRequest 这个类对应到发送的HTTP请求. 方法描述String getProtocol()返回请求协议的名称和版本String getMethod()返回请求的 HTTP 方法的名称 (GET,POST 或 PUT)S…

java计算机毕业设计ssm医院病人信息管理系统60k18(附源码、数据库)

java计算机毕业设计ssm医院病人信息管理系统60k18&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#…

summernote富文本编辑器和jquery.validate冲突报错的解决方案

先看问题: 当我在富文本输入并移出鼠标焦点的时候, 控制台抛出错误Cannot read properties of undefined (reading replace), 而导致jquery.validate无法对其他表单组件进行校验 1.定位问题: jquery.validate的初始化是监听了表单$("#addOrEditForm").validate(),…