vue中render函数的作用及解析

news2025/7/16 1:31:08

vue脚手架的main.js文件中,存在这样一段代码:在这里插入图片描述
意思是对vue实例的配置,其中render函数的作用是,将h创建的Node节点信息return返回给Vue.js底层处理文件中的beforeMount()生命周期钩子函数,让其将Node节点信息在界面中渲染出来

render函数语法如下

render: (h,context)=>{return h(‘el’,{‘css’},vnodeArr)}
  • render函数带有两个参数,分别是h和context

(1) h是一个createElement函数,用于创建节点信息,其内有三个参数
h(‘el’,‘css’,vnodeArr)

其中,el表示当前节点的标签,比如可以是div、span等;css是当前节点标签的css样式;vodeArr是当前节点标签中的子标签,指的是比如:如下div节点中的span标签

<div>
<span></span>
</div>

(2)
context代表当前节点下的所有信息,使用场景:在需要对当前节点中子标签进行改动时,使用context.slots.default 拿到当前节点下所有的子节点信息,这些信息是以数组形式存储的,可以通过数组的方式找到相应的Node节点,然后对其进行修改。如下是对context.slots信息的打印
在这里插入图片描述
render函数需要返回一个h函数创建的Node节点,接收到这个返回信息的函数是vue实例生命周期钩子函数中的beforeMount函数,在接收到信息之后将其渲染
render函数使用示例:
案例环境:
1.封装了一个类似于ElementUi中面包屑的节点组件BreadcrumbItem,代码如下:

<template>
	<span>
		<route-link v-if='to' :to='to'>
			<slot/>
		</route-link>
		<span v-else>
			<slot/>
		</span>
	</span>
</template>
<script>
export default {
	props:{
		to:{
			type:[String,Object],
			default:''
		}
	}
}
</script>

2.使用环境

<Breadcrumb>
	<Breadcrumb-item>首页</Breadcrumb-item>>
	<Breadcrumb-item>>活动列表</Breadcrumb-item>>
	<Breadcrumb-item>>活动详情</Breadcrumb-item>>
	<Breadcrumb-item>>活动详情</Breadcrumb-item>>
</Breadcrumb>

3.想要达到的效果在这里插入图片描述
即:在Breadcrumb组件下使用Breadcrumb-item组件,需要进行一个操作,在Breadcrumb-item标签之后加入一个>的字体图标

解决方式如下:

<template></template>
<script>
	export default {
		name:'Breadcrumb',
		functional:true,  // 以函数的方式注册组件
		render:(h,context)=>{
			const vnodeArr = []  //创建一个新数组,存入处理后的节点数组
			context.slots().default.forEach((item,index,arr)=>{//对原本该组件下的节点数组进行遍历,然后对每一个节点的位置做判断,如果符合条件,就在该节点后添加一个字体图标的新节点
			vnodeArr.push(item) 
			if(index !== arr.length-1){
				vnodeArr.push(h('i',{class:'el-icon-arrow-right'})) // h函数创建字体图标节点
			}
		})
		return h('span',{},vnodeArr) //将Breadcrumb组件认定为一个span标签,并将刚才处理出来的子节点数组添加到该span标签中,最终得出渲染的结果
		}
	}
</script>

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

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

相关文章

智能优化算法之蚁群算法

1、蚁群算法概述 蚁群算法&#xff08;Ant Colony Algorithm, ACA&#xff09; 由Marco Dorigo于1992年在他的博士论文中首次提出&#xff0c; 该算法模拟了自然界中蚂蚁的觅食行为。 蚂蚁在寻找食物源时&#xff0c; 会在其经过的路径上释放一种信息素&#xff0c; 并能够感知…

配对变量t检验

区别双变量t检验&#xff0c;见&#xff1a;https://mp.csdn.net/postedit/100640098 配对变量为两两相关的变量&#xff1a;如敷药前后体重变化。 要求&#xff1a;两变量服从正态分布。 SPSS演练 打开数据文件&#xff1a;ptest.sav 载地址&#xff1a;https://download.c…

vscode环境配置文件生成

使用vscode进行C开发时&#xff0c;除了需要安装相应的插件&#xff08;例如&#xff1a;C/C、CMake、MySql等&#xff09;外&#xff0c;还需要对相应的开发环境进行配置&#xff0c;和vs中的环境配置道理相通。一、编译文件介绍配置 C 环境时&#xff0c;会生成.vscode 文件夹…

记录一次消毒碗柜维修

现象&#xff1a;按开始消毒后马上停止&#xff0c;但可以一直按着按钮&#xff0c;就可以消毒&#xff0c;并且30分钟后可以自动停止。分析&#xff1a;消毒柜里面控制器就这3个1 开关只是触发通电&#xff0c;弹起就断开&#xff0c;按下可以接通&#xff0c;判断该零件正常2…

STM32感应开关盖垃圾桶

目录 项目需求 项目框图 ​编辑 硬件清单 sg90舵机介绍及实战 sg90舵机介绍 角度控制 SG90舵机编程实现 超声波传感器介绍及实战 超声波传感器介绍 超声波编程实战 项目设计及实现 项目需求 检测靠近时&#xff0c;垃圾桶自动开盖并伴随滴一声&#xff0c;2秒后关盖…

Hadoop入个门

文章目录1️⃣、Hadoop概述1.1、Hadoop是什么1.2、三大发行版本1.3、优势1.4、组成HDFSYARNMapReduceHDFS、YARN、MapReduce三者关系1.6、大数据技术生态体系image-202303111027195802️⃣、Hadoop运行环境搭建2.1、虚拟机环境准备2.2、克隆虚拟机2.3、在hadoop2上安装JDK2.4、…

cocoscreator+TS 遇到的问题

报错Can not preload the scene "game2" because it is not in the build settings.报错 1209, please go to https://github.com/cocos-creator/engine/blob/develop/EngineErrorMap.md#1209 to see details. Arguments: game2(env: Windows,mg,1.06.2303022; lib: …

掌握Shell脚本的if语句,让你的代码更加精准和高效

前言 大家好&#xff0c;我是沐风晓月&#xff0c;本文首发于csdn&#xff0c; 作者: 我是沐风晓月。 文章收录于 我是沐风晓月csdn专栏 【系统架构实战】专栏中的【shell脚本入门到精通】专栏。 本专栏从零基础带你层层深入&#xff0c;学会shell脚本&#xff0c;不是梦。 &…

核心系统国产平台迁移验证

核心系统国产平台迁移验证 摘要&#xff1a;信息技术应用创新&#xff0c;旨在实现信息技术领域的自主可控&#xff0c;保障国家信息安全。金融领域又是关系国家经济命脉的行业&#xff0c;而对核心交易系统的信息技术应用创新是交易所未来将要面临的重大挑战。为了推进国产化进…

云数据库RDS介绍

RDS介绍 关系型数据库&#xff08;relational database service&#xff0c;简称RDS&#xff09;&#xff0c;是一种可靠、可弹性伸缩的在线数据库服务。 1&#xff09;基于分布式文件系统和SSD盘高性能存储 2&#xff09;支持MySQL、SQL Server、PostgreSQL、MariaDB TX引擎 …

原来不用控制台,也可以轻松调试CSS呀

Ⅰ. 作用 用于调试CSS , 比控制台添更加方便&#xff0c;不需要寻找 &#xff1b;边添加样式&#xff0c;边可以查看效果&#xff0c;适合初学者对CSS 的理解和学习&#xff1b; Ⅱ. 快速实现&#xff08;两边&#xff09; ① 显示这个样式眶 给 head 和 style 标签添加一个…

YOLOS学习记录

在前面&#xff0c;博主已经完成了YOLOS项目的部署与调试任务&#xff0c;并在博主自己构造的数据集上进行了实验&#xff0c;实验结果表明效果并不显著&#xff0c;其实这一点并不意外&#xff0c;反而是在情理之中。众所周知&#xff0c;Transformer一直以来作为NLP领域的带头…

独立开发者案例:每周4h月入数万刀;国家数据局与时代红利;创业前先买个域名;工程师成长最重要的是什么 | ShowMeAI周刊

这是ShowMeAI周刊的第6期。聚焦AI领域本周热点&#xff0c;及其在各圈层泛起的涟漪&#xff1b;关注AI技术进步&#xff0c;并提供我们的商业洞察。欢迎关注与订阅&#xff01;&#x1f440;日报合辑 ⌛ 独立开发者案例&#xff1a;每周只工作4小时&#xff0c;独立开发者打造月…

Docker nginx安装使用

拉取镜像$ docker pull nginx默认会拉取仓库名为nginx&#xff0c;tag为latest的镜像。挂载nginx.conf文件首次启动nginx容器考虑到后面维护nginx配置文件nginx.conf的成本&#xff0c;这里采用docker 数据卷的技术&#xff0c;即将docker中的nginx.conf配置文件挂载到宿主机当…

嵌入式学习笔记——STM32的USART通信概述

文章目录前言常用通信协议分类及其特征介绍通信协议通信协议分类1.同步异步通信2.全双工/半双工/单工3.现场总线/板级总线4. 串行/并行通信5. 有线通信、无线通信STM32通信协议的配置方式使用通信协议控制器实现使用IO口模拟的方式实现STM32串口通信概述什么是串口通信STM32F40…

# YOLOv8测试(1)

YOLOv8测试&#xff08;1&#xff09;1. 训练最简流程1.1 安装包1.2 训练demo1.3 验证参考文献资料鉴于网络上的太多教程&#xff0c;都太过繁琐了。其实之前也用过YOLOv2 v3版本&#xff0c;但很久没用&#xff0c;找了一圈教程多少有坑&#xff0c;想想还是自己整理一版吧。花…

测开:vue高级特性

vue官网地址&#xff1a; Vue.js - 渐进式 JavaScript 框架 | Vue.js 上一章节&#xff1a; 测开&#xff1a;vue基本语法_做测试的喵酱的博客-CSDN博客 一、vue事件修饰符 1.1 stop: 阻止事件冒泡 事件冒泡&#xff1a;子元素触发某个事件之后&#xff0c;会依次将这个事…

用DQN实现Atari game(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 强化学习研究的是Agent和环境交互中如何学习最优策略&#xff0c;以获得最大收益。Agent需要能够观察环境(observe)所处的状态&…

组播IP 映射 组播MAC

组播IP地址与组播MAC地址之间的换算方法与例子 1、在IP分类中&#xff0c;D类IP地址用于组播MAC。 2、在TCP/IP中&#xff0c;最常用的v4组播MAC地址的前24位固定为01005e&#xff0c;第25位固定为0&#xff0c;后23位由IP地址的后23位复制得出。 3、在D类组播IP中有5位未用&a…

Spark-行动算子

1、reduce&#xff08;聚合&#xff09; 2、collect&#xff08;采集&#xff09; 3、count &#xff08;统计&#xff09; 4、first 5、take 6、takeOrdered 7、aggregate 8、fold 9、countByKey 10、countByValue 11、save 算子 12、foreach 算子总结 所谓行…