一、Vue3混合插件开发

为了演示插件开发过程,这里创建一个简单弹窗组件。功能: 通过增加全局函数方法,使用渲染函数去调用Vue组件并挂载到真实DOM显示。

1. 文件目录

2. 创建弹窗组件 ,路径 /src/plugins/example/dialog.vue,这里仅供参考

// /src/plugins/example/dialog.vue
<script lang="jsx">
export default {props: {show: {type: Boolean,default: false}},setup(props) {const msg = '这里是弹窗内容,仅做演示'return () =>props.show ? (<div className="dialog"><div className="content">{msg}</div></div>) : (<div />)}
}
</script><style lang="scss" scoped>
.dialog {position: fixed;top: 0;left: 0;width: 100%;height: 100%;display: flex;align-items: center;justify-content: center;background: black;.content {height: 100px;width: 100%;background: white;margin: 0 30px;padding: 15px;border-radius: 10px;}
}
</style>

3. 创建全局调用方法,路径 /src/plugins/example/index.js

// /src/plugins/example/index.js
import { h, render } from 'vue'
import Dialog from './dialog.vue'const examplePlugin = {}
const removeElement = (el) => {if (typeof el.remove !== 'undefined') {el.remove()} else {el.parentNode.removeChild(el)}
}examplePlugin.install = function (app) {app.config.globalProperties.$exampleDialog = (type) => {if (typeof app.exampleDialogIns === 'undefined') { //创建弹窗const obj = {vNodes: h(Dialog, { show: type }), // 创建虚拟DOMel: document.createElement('div') // 元素容器}render(obj.vNodes, obj.el) // 挂载到容器document.body.appendChild(obj.el) // 追加到页面app.exampleDialogIns = obj}if (!type) { // false则关闭弹窗并销毁变量render(null, app.exampleDialogIns.el)removeElement(app.exampleDialogIns.el)delete app.exampleDialogIns}}
}export default examplePlugin

二、插件使用

1.  入口导入插件 ,路径 /src/main.ts

// /src/main.ts
...
import exampleDialog from './plugins/example/index'app.use(exampleDialog)
...

2. 组件里使用插件

<script setup lang="ts">
import { getCurrentInstance } from 'vue'const ctx = getCurrentInstance()?.appContext.config.globalProperties
ctx.$exampleDialog(true)
setTimeout(() => ctx.$exampleDialog(false), 3000)
</script><template><div></div>
</template>

Vue3渲染函数开发混合插件之函数调用组件相关推荐

  1. 使用Vue3+Element Plus开发Chrome插件

    使用Vue3+Element Plus开发Chrome插件 引言 初始Vue项目的创建 Element-Plus组件的安装及导入 其他文件配置 .eslintrc.js文件 vue.config.js ...

  2. Vue.js学习笔记—sort-table:实战:使用Render函数开发可排序的表格组件

    参考<Vue,js>实战(梁灏编著) sort-table:实战:使用Render函数开发可排序的表格组件 index.html <!DOCTYPE html> <htm ...

  3. Vue3官网-可复用组合式API(十四)实例 property(\$slots,\$attrs)、渲染函数render(虚拟节点VNode,h() 参数,使用JavaScript代替模板功能),插件

    Vue3官网-可复用&组合式API(十四)实例 property($slots,$attrs).渲染函数render(虚拟节点VNode,h() 参数,使用JavaScript代替模板功能), ...

  4. vue渲染大量数据如何优化_Vue3 Compiler 优化细节,如何手写高性能渲染函数

    送5本<你不知道的 JavaScript 上卷>点我抽奖,祝大家好运 Vue3 的 Compiler 与 runtime 紧密合作,充分利用编译时信息,使得性能得到了极大的提升.本文的目的 ...

  5. vue2基础- render 渲染函数基础使用

    文章目录 什么是渲染函数 为什么需要渲染函数 函数式组件 怎么使用渲染函数 使用 JSX 语法 示例 什么是渲染函数 我们知道Vue是一款流行的JavaScript前端框架.绝大多数情况下我们都是使用 ...

  6. vue2的动画,混入Mixin,插件,指令,渲染函数,响应式,MVVM

    文章目录 过渡 & 动画 Transition 组件 基于 CSS 的过渡效果 CSS 过渡类名 class 为过渡效果命名 CSS 过渡 transition 实例1: 实例2: CSS 动 ...

  7. 使用 Vue3 + vite + elementUI 开发一个 Utools Markdown 编辑器插件

    文章目录 目的 开发文档整理 基础工具的集成 初始化项目 框架引入 按需引用和 SASS 引入验证 utools 开发配置 调试和打包插件 功能实现 依赖库的安装调用 布局实现 Editor.vue ...

  8. vue3利用渲染函数实现格子布局(九宫格)

    前言 因为工作中需要用到类似九宫格的布局,而element-plus里没有类似的组件,因此自己实现了一个格子布局的组件 思路 其实格子布局目前我更多的是在手机端使用,而目前手机端开发使用的是vant组 ...

  9. 《Vue3+TS》开发一个自己的起始页(二)chrome插件化

    前言 各位小伙伴们大家好,求关注,求收藏,求点赞: 另外为自己拉一波票:https://bbs.csdn.net/topics/603955887?spm=1001.2014.3001.6953,诚实 ...

最新文章

  1. oracle自动化,Oracle 自动化备份脚本
  2. 深度 | 香港中文大学(深圳)张大鹏教授:生物特征识别的新进展 | CCF-GAIR 2019
  3. 根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码
  4. 实现SELECT的全选,反选,AB选的JAVASCRIPT代码
  5. HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试
  6. 关闭注册表编辑器,重新启动计算机后生效。这样资源管理器重启后就不会自动重启了。...
  7. 时评:别让智能设备成为网络安全的“蚁穴”
  8. ZKWeb网页框架1.3正式发布
  9. php本地文件包含漏洞,php文件包含漏洞利用小结
  10. 服务器cpu支持DDR4,迟来的惊喜 AMD新处理器支持DDR4内存
  11. 计算机可视化仿真技术opengl,基于OpenGL的三维场景可视化仿真
  12. SQL Server数据类型一览表
  13. 华为服务器串口修改密码,huawei恢复Console口密码
  14. python语义分析_Python - Sentiment Analysis
  15. 如何用Python批量提取PPT中含有某关键词的一页,并将这些PPT合并
  16. html导航图片滚动条,CSS实现导航栏底部动态滚动条效果
  17. 【转】第5章 数据的描述性分析
  18. 天堂向左,深圳往右 第十三章第十四章
  19. oracle怎么备份bak文件,[转载]如何将sqlserver的bak文件中的数据还原到oracle数据库中...
  20. October cms-Backend (后端-表单)

热门文章

  1. 电子科学与技术转计算机容易吗,电子信息专业要不要转到计算机科学与技术专业??...
  2. 最适合你星座的英文名字
  3. win10系统上传服务器失败,win10添加到服务器失败
  4. 取巧方式无限制试用Source insight3.5
  5. 西南大学计算机学硕考研,19西南大学计算机考研复试经验贴
  6. jsp怎么做柱状图_用jsp怎样生成柱状图,饼状图,折线图
  7. 如何回答面试官提问:如果你进入公司,会怎样开展工作?
  8. 【XC6SLX9 TQC144】拨码开关实现4位加法器并使用LED显示
  9. 国外一些好用的UX/UI设计工具和资源介绍
  10. AR眼镜新秀雷鸟创新,究竟能飞多远?