vue3 Element UI使用自定义内容

2023-11-08

这里以Vue3版本的Element UI 举例

这是一个通知组件

在这里插入图片描述

通知的内容我们可以通过message参数来控制

例如:

<template>
  <el-button plain @click="open1">打开</el-button>
</template>

<script>
import { ElNotification } from "element-plus";

export default {
  name: "Demo",
  setup() {
    const open = () => {
      ElNotification.success({
          title: '成功',
          message: '这是一条成功的提示消息',
          type: 'success'
      });
    };
    return { open };
  }
};
</script>

期望效果

现在我们想要在这个通知栏中增加一个按钮,效果如下:

在这里插入图片描述

那么就需要在message字段中提供一个VNode,也就是组件的render函数

实现

首先通过resolveComponent 解析el-button然后,用h函数创建VNode赋值就可以实现。

<template>
    <el-button plain @click="open"> 打开 </el-button>
</template>

<script>
import { ElNotification } from "element-plus";
import { h, resolveComponent } from "vue";

export default {
  name: "Demo",
  setup(prorps, context) {
    const btn =resolveComponent("el-button");
    const open = () => {
      ElNotification.success({
        title: "Info",
        message: h(btn,{}, "应用"),
      });
    };
    return { open };
  }
};
</script>

VUE 2 vs VUE 3

vue2中渲染函数大致如下,并且可以直接通过 组件名称 直接创建已经注册的子组件。

// Vue 2 渲染函数示例
export default {
  render(h) {
    return h('div',{
  		staticClass: 'button',
  		class: { 'is-outlined': isOutlined },
  		staticStyle: { color: '#34495E' },
  		style: { backgroundColor: buttonColor },
  		attrs: { id: 'submit' },
  		domProps: { innerHTML: '' },
  		on: { click: submitForm },
 		key: 'submit-button'
		}, "子元素")
  }
}

Vue3修改为了实现 响应式API 调整 渲染函数 API ,与Vue2不兼容了。

Vue3中元素创建的函数被需要单独导入,创建元素的属性配置也变得扁平,并且无法直接创建已经注册的子组件,需要resolveComponent手动解析,然后创建。

import { h } from "vue";

const vNode = h('div',{
  						class: ['button', { 'is-outlined': isOutlined }],
  						style: [{ color: '#34495E' }, { backgroundColor: buttonColor }],
  						id: 'submit',
  						innerHTML: '',
  						onClick: submitForm,
  						key: 'submit-button'
					}, "子元素");

更多参考 VUE 官方 渲染函数 API

参考文献

  1. vuejs . 渲染函数 API . https://v3.cn.vuejs.org/guide/migration/render-function-api.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue3 Element UI使用自定义内容 的相关文章

  • 网易数据分析高级总监:10年数据分析老司机的深度思考!

    关注上方 肉眼品世界 选择星标 本文整理自知乎专栏 突破数据分析 1 作者是网易数据分析高级总监贺志 我是一个数据从业者 很早以前就想把自己在工作和学习中的心得做个总结 一方面是对自己过往经历的一个总结和回顾 一方面最近几年大数据是越来越火
  • java定义正则表达式,JAVA——正则表达式基本语法

    一 正则表达式概念 使用单个字符串来描述 匹配一系列符合某个语法规则的字符串 二 正则表达式常用字符 1 字符类 如 abc 将字符进行归类 可以出现 中的其中一个 对abc其中一个进行匹配 abc 对不是abc的字符进行匹配 2 范围类
  • python中获取cookie的两种方法

    第一种是利用selenium phantomjs无界面浏览器的形式访问网站 再获取cookie值 导入模块 from selenium import webdriver driver webdriver PhantomJS url http
  • apache camel详解

    apache camel 两篇比较详细的介绍 上 http www uml org cn zjjs 201801223 asp 中 http www uml org cn zjjs 201801222 asp apache camel比较详

随机推荐

  • Jenkins与DevOps持续交付详解

    一 Jenkins简介 1 Jenkins简介 Jenkins是一个开源项目 提供了一种易于使用可扩展的持续集成系统 使开发者从繁杂的集成中解脱出来 专注于更为重要的业务逻辑实现上 同时Jenkins能实时监控集成时存在的错误 提供详细的日
  • RabbitMQ学习总结

    RabbitMQ 简介 消息中间件 什么是中间件呢 非底层操作系统软件 非业务应用软件 不是直接给最终用户使用的 不能直接给客户带来价值的软件统称为中间件 什么是消息中间件 消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流 并基于
  • Kali下使用一行python代码实现简易的http服务器

    比如我在kali的tmp目录下执行下列代码 就可以在当前目录开启一个http服务 python m SimpleHTTPServer 然后就可以从另一台机器访问kali的ip下 tmp目录的内容 这样就可以传输文件等操作
  • html2canvas多个id,在同一个canvas里显示多个图形

    代码 html js function id return document getElementById id 绘制正多边形的封装函数 window onload function var cnv1 canvas1 var cxt1 cn
  • kali linux子系统的网络配置

    kali linux子系统的网络配置 配置kali子系统时 踩了一些坑 主要是网络配置时卡了挺久 因为wsl2安装时默认为NAT模式 而在测试过程中 经常会需要反弹shell或开启服务让靶机下载文件之类的操作 因此最好使用桥接模式 kali
  • html鼠标背景特效,6种鼠标滑过按钮背景动画特效

    插件描述 这是一组效果非常酷的鼠标滑过按钮背景动画特效 该特效中 当鼠标滑过按钮时 使用CSS3 animation来动画backgroundsize和backgroundposition属性 来制作各种背景动画效果 简要教程 这是一组效果
  • 判断两个字符串是否相等的更好方法

    在Java中 判断两个字符串是否相等有几种常见的方法 以下是其中一些更好的方法 1 使用equals 方法 java String str1 Hello String str2 World if str1 equals str2 字符串相等
  • SpringMVC的请求(获取参数以及静态资源访问)

    SpringMVC的请求 SpringMVC的请求 1 SpringMVC的请求 获得请求参数 请求参数类型 理解 2 SpringMVC的请求 获得请求参数 获得基本类型参数 应用 3 SpringMVC的请求 获得请求参数 获得POJO
  • systemctl 命令详解及使用教程

    在本教程中 我们将向您介绍在运行systemd的linux系统上如何使用systemctl命令工具有效的控制系统和服务 Systemctl 介绍 Systemctl是一个systemd工具 主要负责控制systemd系统和服务管理器 Sys
  • VM虚拟机-安装Linux、windows、windows server超详细步骤演示

    本文章所展示的workstation为15 5版本 Linux为Redhat7 4版本 Windows为win10版本 windows server 2012版本 其他版本的安装过程都大致同理 目录 VMware Workstation安装
  • Linux编译FFmpeg

    Linux编译FFmpeg 1 下载FFmpeg源码 FFmpeg源码下载地址 http ffmpeg org download html 在下面选择版本 2 解压并创建生成目录 tar xvf ffmpeg snapshot tar bz
  • 单独编译使用WebRTC的音频处理模块

    单独编译使用WebRTC的音频处理模块 2016年12月08日 14 26 58 starRTC免费IM直播会议一对一视频 阅读数 8360 版权声明 starRTC免费im直播会议一对一视频 by elesos com starRTC c
  • Java中AWT、Swing与SWT三大GUI技术的原理与效率差异

    转自 http blog csdn net widegoose article details 333908 MineHe原创 看了一下对Java GUI讨论的帖子 所以写了一篇文章来阐述一下各种GUI技术的优劣 Java世界中 目前最知名
  • 黑马程序员Javaweb学习笔记02【request和response】

    该博客主要记录在学习黑马程序员Javaweb过程的一些笔记 方便复习以及加强记忆 系列文章 JavaWeb学习笔记01 BS架构 Maven Tomcat Servlet JavaWeb学习笔记02 request和response Jav
  • 模型训练——Loss函数 归纳汇总

    上一篇文章 语音降噪模型归纳汇总 很意外地收到了点赞收藏和关注 如此的反馈给了我极大的鼓舞 这里就再梳理了一下loss函数相关的知识 以求方便能作为一份工具性质的文章展现出来 能力一般 水平有限 欢迎大家指正 干货分享 欢迎收藏点赞加关注
  • (ESP32学习6)双核CPU的调用

    本来之前从来没有用过双核做东西 但是突然意识到他好像是双核的 所以找了一些资料更第一篇双核的调用 还是挺有趣的 博文会持续更FreeRTOS与双核相关内容 这一章先做一件最简单的事情 在两个核上创建简单任务让他们跑起来 先看代码再讲解 in
  • flink-cdc,clickhouse写入,多路输出

    1 场景 kafka日志数据从kafka读取 1 关联字典表 完善日志数据 2 判断日志内容级别 多路输出 低级 入clickhouse 高级 入clickhouse的同时推送到kafka供2次数据流程处理 2 实现 package com
  • 媒资知识图谱系统

    http wenku baidu com link url xEjnrOeeVaqCc5JNZfuFGewAFKWbPjZDI3FzopmFuDrxYIfXkU3fxaXnPDpI2 6 kvcbnwV 8irUddAmk2JpkZlD2B
  • 太赫兹技术的应用前景

    从振奋全国的神舟五号载人飞船开始 中国的航空进入了发展的快车道 有好奇的朋友问了 天上这么多的卫星 它们之间是怎么 交流 的 在太空中 两颗卫星在地球轨道上 运用传统卫星技术传数据需要一段时间才能完成传送 但太赫兹技术的出现 让卫星们可以不
  • vue3 Element UI使用自定义内容

    这里以Vue3版本的Element UI 举例 这是一个通知组件 通知的内容我们可以通过message参数来控制 例如