Vue3使用jsx和render函数动态插入组件和元素

定义弹框组件(只实现功能,不管样式)

javascript 复制代码
import {render} from 'vue'
export function SingPop(content,handler) {
    const div = document.createElement('div');
    let pop = <div>
        <div>{content}</div>
        <div>
            <button onClick={()=>{
                document.body.removeChild(div);
                console.log('不同意');
                handler.cancel && handler.cancel()

            }}>不同意</button>
           <button onClick={()=>{
                document.body.removeChild(div);
                console.log('同意');
                handler.agree && handler.agree();
            }}>同意</button>
        </div>
    </div>
 
/**
 * render ------ 渲染虚拟 DOM
 * @param 参数1 要被渲染的虚拟 DOM,必选
 * @param 参数2 要渲染的位置,必选
 * @description 虚拟 DOM 创建完成后,需要使用 render 函数,才能在页面中渲染
**/
 render(pop,div);
 document.body.appendChild(div);
} 

// 使用

javascript 复制代码
	import {SingPop} from './singPop.jsx'
	// 可通过一个按钮来触发
	SingPop('哈哈哈',{
					cancel:()=>{
						console.log('cancel');
					},
					agree:()=>{
						console.log('agree')
					}
				})
相关推荐
BillKu几秒前
Vue3数组去重方法总结
前端·javascript·vue.js
GDAL3 分钟前
Object.freeze() 深度解析:不可变性的实现与实战指南
javascript·freeze
江城开朗的豌豆21 分钟前
Vue+JSX真香现场:告别模板语法,解锁新姿势!
前端·javascript·vue.js
这里有鱼汤29 分钟前
首个支持A股的AI多智能体金融系统,来了
前端·python
袁煦丞30 分钟前
5分钟搭建高颜值后台!SoybeanAdmin:cpolar内网穿透实验室第648个成功挑战
前端·程序员·远程工作
摸鱼仙人~30 分钟前
Vue.js 指令系统完全指南:深入理解 v- 指令
前端·javascript·vue.js
前端进阶者32 分钟前
支持TypeScript并打包为ESM/CommonJS/UMD三种格式的脚手架项目
前端
星空下的曙光32 分钟前
pnpm vs npm区别对比
前端·npm·node.js
啃火龙果的兔子33 分钟前
React 图标库发布到 npm 仓库
前端·react.js·npm
江城开朗的豌豆34 分钟前
Vue列表渲染的坑:为什么不能用index当key?血泪教训总结!
前端·javascript·vue.js