vue-使用js创建组件--render函数

2023-11-08

template 怎么被写成一个页面的

  • templatevue-template-compiler 插件编译成一个render函数
  • render函数再被创建成一个VNode(虚拟dom)

一般使用组件

  • 创建组件,一般的我们再components文件夹中创建一个需要的组件
  • 导入:import 组件的名字 from '地址’
// 导入一个其他的组件
import ComB from '../components/ComB.vue'

我们也可以使用JS创建一个组件

  • 使用js创建一个组件
// 目标:创建一个组件,增加传入参数propslevel 传入1返回h1,2--h2等
// js创建组件
var child = {
	// 组件用来接收父组件的参数的中间量,level
	// 接收父组件传递的数据list,用来遍历
	props : ['level',"list"],
	// 渲染组件的函数 render
	render(createElement) {
		// createElement 创建dom的一个方法
		return createElement(
			"h" + this.level,	// 标签
			{
				// 配置渲染
				// 设置组件的类名
				class : {red : true,weight : true},
				// 设置组件的样式
				style : {fontSzie : "60px"},
				// 设置组件的属性值
				attrs : {title : "我来自中国"},
				// 设置组件的内容
				domProps : {
				 	innerHTML : `<i>你好</i>`
				 },
				// 设置事件
				on : {click : this.say}
			},	
			// 设置组件的插槽
			 ["聂荣",this.$slots.default],
			 // 循环传递
			this.list.map(item => {
				return createElement("p",item);
			})
			
		);
	},
	// 设置组件的事件
	methods : {
		say() {
			alert("你好啊,小朋友")
		}
	}
}

// 导入一个其他的组件
import ComB from '../components/ComB.vue'
// 打印导入的组件,以及我们用js创建的组件,发现两者基本一致
// 为什么会这样?是什么编译的
// 答案是webpack 
// 一个 .vue文件最终会编译成js  render函数,是有vue-
console.log(ComB);
console.log(child);
  • 父组件的写法
// 父组件的
export default {
	name: 'Home',
	data() {return {
		list : ["vue","react"]
	}},
	methods : {
		
	},
	// 注册js写的组件
	components : {
		child
	}
}
  • 调用
<template>
  <div class="home">
    <img alt="Vue logo" src="../assets/logo.png">
	<child :level="1"></child>
	<child :level="2"></child>
	<child :level="3"></child>
	<child :level="4" :list= "list" ><slot>插槽内容</slot></child>
	
  </div>
</template>s
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue-使用js创建组件--render函数 的相关文章

  • Echarts图表不显示

    Echarts图表不显示 div标签的style属性设置有问题 div style width 500px height 500px div
  • C++课程基础语法小结

    前言 每个人的记忆是有限的 学过的东西很快就会遗忘 因此 在即将升大二之际 对大一学习的C 的基础语法进行整理归纳 并附上一年里写过的一些重要代码 方便今后回顾 声明 本文参考教材提供的网络学习资料 非常感谢 网址已注明 代码为博主本人大一
  • 人体活动识别总结

    人体活动识别 活动识别过程 数据采集 数据预处理 窗口分割 特征提取 特征选择 活动分类 面临问题 人类活动识别 HAR 仍有许多问题促使新技术的发展 以提高在更现实的条件下的准确性 其中一些挑战是 1 要度量的属性选择 2 便携的 不显眼

随机推荐

  • 3D开发-PhotoScan 模型生成

    PhotoScan是一款图片转3D模型软件 需要商业license 其图片转3D模型效果非常好 是一款基于影响自动生成高质量三维模型的优秀软件 这对于3D建模需求来说实在是一把利器 图片转3D模型操作 Step1 选择工作流程 Step2
  • 虚拟现实(VR)在医疗保健中的5种应用

    医疗保健中的VR虚拟现实 虚拟现实的由来已久 18世纪 法国的医生使用布制的分娩模拟器向助产师和外科医生教授医学技术 在20世纪60年代初 医生一边对心肺复苏学员口述心肺复苏的技巧 一边使用一家塑料玩具厂家制造的塑料娃娃现场演示胸部按压和人
  • 安全(四):CSRF攻击

    csrf获取的不是用户的所有权限 获取的是用户在修改东西的时候 通过url权限修改信息 查看这里
  • MySQL-面试题

    第六章 决胜秋招 Section A 练习一 各部门工资最高的员工 难度 中等 创建Employee 表 包含所有员工信息 每个员工有其对应的 Id salary 和 department Id Id Name Salary Departm
  • 已知树的中序序列和先序/后序序列,求树的结构?

    已知树的中序序列和先序 后序序列 求树的结构 这类问题比较经典了 刚好CSDN上有人问起 所以自己写了一个递归算法 根据中序和先序 后序 建立树结构 这里需要说明的是 必须要知道中序序列 先序和后序可选的情况下才能推导出树结构 只知道后序先
  • Springboot毕设项目二手手机回收系统2r40d(java+VUE+Mybatis+Maven+Mysql)

    Springboot毕设项目二手手机回收系统2r40d java VUE Mybatis Maven Mysql 项目运行 环境配置 Jdk1 8 Tomcat8 5 Mysql HBuilderX Webstorm也行 Eclispe I
  • selenium三种等待方式详解

    一 场景 我们在做WEB自动化时 一般要等待页面元素加载完成后 才能执行操作 否则会报找不到元素的错误 这样就要求我们在有些场景下加等待时间 二 强制等待 1 利用time模块的sleep方法来实现 最简单粗暴的方法 2 不管浏览器是否加载
  • 关于RecyclerView一系列问题汇总

    今天主要分享的主要是使用recyclerview添加item 删除item的一些问题的汇总 后续持续更新 开发多年一直在使用BaseRecyclerViewAdapterHelper这个库 就拿这个来举例 添加item mAdapter a
  • 解决 ModuleNotFoundError: No module named 'pip'

    今天 安装其它python包时 提示说 pip 10 0 1可用 就更新了一下 但是 更新过程中出现了错误 如图所示 因为这个错误导致 pip找不到 可以首先执行 python m ensurepip 然后执行 python m pip i
  • 【Redis】五种数据结构的常用命令,及多种应用场景示例

    Redis 是一个开源 高级的键值存储和一个适用的解决方案 用于构建高性能 可扩展的 Web 应用程序 Redis 也被作者戏称为数据结构服务器 这意味着使用者可以通过一些命令 基于带有 TCP 套接字的简单 服务器 客户端 协议来访问一组
  • 电池并联防止接反电路设计

    缘由两节电池并联电路如何实现可靠的防反接效果 电源技术论坛 电子技术论坛 广受欢迎的专业电子论坛
  • 关于静态变量与非静态变量的区别

    public class Cluster private static String id 与 public class Cluster private String id 的不同 前者中定义的是静态变量id 这个变量在类加载 不是new
  • 原生安卓继承uniapp后执行自定义的applicaiton与activity(实现双击退出按钮监听)

    一 自定义application 乱起八糟的不用管 1 MyApplication java public class MyApplication extends DCloudApplication Override public void
  • 【QT 网络云盘客户端】——实现文件属性窗口

    目录 文件属性对话框 设置字体样式 获取文件的信息 显示文件属性对话框 当我们点击文件中的属性 则会弹出一个属性对话框 实现过程 0 设置 属性 菜单项的槽函数 1 鼠获取鼠标选中的QListWidgetItem 它包含 图标和文件名 2
  • Java高级开发的50个性能优化

    在JAVA程序中 性能问题的大部分原因并不在于JAVA语言 而是程序本身 养成良好的编码习惯非常重要 能够显著地提升程序性能 1 尽量在合适的场合使用单例 使用单例可以减轻加载的负担 缩短加载的时间 提高加载的效率 但并不是所有地方都适用于
  • 李沐老师动手学深度学习v2中 LeNet实现中遇到的运行报错问题以及无法显示动态图片问题

    问题一 RuntimeError DataLoader worker pid s 4088 9912 220 exited unexpectedly报错问题 报错原因 Windows不支持多线程 在运行下面这句时调用了get dataloa
  • redis单线程模型为什么这么高效

    一 为什么Redis是单线程的 Redis 是基于内存的操作 而CPU 不是 Redis 的瓶颈 Redis 的瓶颈最有可能是机器内存的 大小或者网络带宽 同时 单线程的实现更加简单和经济 采用单线程可以使指令串行 不用额外 维护锁机制 避
  • vs创建c语言项目

    vs创建c语言项目 已知用c 做一些简单的开发 以前虽然也捅咕过C和C 但是好久不上手了 现在用VS都不知道怎么创建C项目 首先打开VS程序 选择新建一个项目 然后在里面选择C 新建win32控制台程序 下面的哪些名字和路径 改了项目名就行
  • [SQL Server] TSQL实现SQL Server中CTE 递归查询

    参考博客 https www cnblogs com ljhdo p 4580347 html 简介 递归查询主要应用于层级结构表的查询 叶节点 gt 根节点的查询 根节点 gt 叶节点的查询 递归查询必须满足的条件 初始条件 递归查询至少
  • vue-使用js创建组件--render函数

    vue cli 使用js创建组件 render函数 template 怎么被写成一个页面的 一般使用组件 我们也可以使用JS创建一个组件 template 怎么被写成一个页面的 template 被 vue template compile