位置: IT常识 - 正文

uniapp全局组件全局使用(不在每个页面template使用,仅支持H5),函数式调用全局组件方法(uniapp全局对象)

编辑:rootadmin
uniapp全局组件全局使用(不在每个页面template使用,仅支持H5),函数式调用全局组件方法

推荐整理分享uniapp全局组件全局使用(不在每个页面template使用,仅支持H5),函数式调用全局组件方法(uniapp全局对象),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp全选,uni-app全局组件,uniapp全选,uniapp全选,uniappui组件,uniappui组件,uniapp全局变量四种实现方式,uniapp 全局组件,内容如对您有帮助,希望把文章链接给更多的朋友!

 最简单的使用,在 main.js 编写如下代码,即可将 xxx 组件在每个页面显示

// main.js// 引入组件import xxx from "@/components/xxx.vue";// 将该组件挂载在document.body下document.body.appendChild(new xxx().$mount().$el);函数式调用全局组件方法

场景,某些 toast 组件需要如下方式使用

<template> <toast ref="toast"></toast></template><script> export default { methods:{ showToast(){ this.$refs.toast.show(); } } }</script>

经改造,最终使用方法为:

this.$r.toast().show();

实现方式:

1、在 utils 目录下新建 render.js

2、在 main.js 下将 render.js 绑定在 this 下

// ...import render from "@/utils/render";Vue.prototype.$r = render;// ...

3、在 render.js 内将组件绑定至全局

// utils/render.js// 引入vueimport vm from "vue";// toast组件import toast from "@/components/xxx/toast.vue";export default { /** * 全局toast弹窗 */ toast(){ // 全局注册toast组件 const toastCom = vm.component('toast',toast); // 获取uniapp根节点 const uniappRoot = document.getElementsByTagName("uni-app")[0]; // 初始化toast组件const toastComp = new toastCom(); // 这里我每个组件内都有一个固定id,用来禁止同意组件生成多次if(document.getElementById(toastComp.id)){document.getElementById(toastComp.id).remove();} // 将toast组件添加在uniapp根节点上uniappRoot.appendChild(toastComp.$mount().$el);return toastComp; }}uniapp全局组件全局使用(不在每个页面template使用,仅支持H5),函数式调用全局组件方法(uniapp全局对象)

4、最后我们可以直接函数式调用组件方法与设置组件属性

// 此show方法在toast组件的methods中定义this.$r.toast().show();// 此duration属性在toast组件的data中this.$r.toast().duration;

嘿,愿你代码永无bug,人生永无坎坷!

嘿,愿你代码永无bug,人生永无坎坷!

嘿,愿你代码永无bug,人生永无坎坷!

嘿,愿你代码永无bug,人生永无坎坷!

嘿,愿你代码永无bug,人生永无坎坷!

嘿,愿你代码永无bug,人生永无坎坷!

广告:(提供学习机会)

       前端交流学习群:1063233592

       PHP学习交流群:901759097

       前后端学习交流微信群:加我微信,填写验证消息(前端),拉你进群

本文链接地址:https://www.jiuchutong.com/zhishi/276371.html 转载请保留说明!

上一篇:初级会计中应收票据质押给银行怎么做账?(初级会计应收账款例题)

下一篇:Win10 Dev 预览版 20279(FE_RELEASE)更新详解(win10 dev版本)

  • 支付宝如何查看退款去向(支付宝如何查看消费记录)

  • 卡贴机可以升级13.5吗(卡贴机可以升级内存吗)

  • 12123用户被占用(交管12123账号被占用)

  • 华为p40反向充电怎么设置(华为p40反向充电怎么关闭)

  • 打印机需要连接网线吗(打印机需要连接电脑主机吗)

  • 文本形式是啥(文本形式在哪里)

  • oppoa92s处理器是什么(OPPOa92s处理器是多少)

  • 钉钉能后台播放吗

  • 对方账号封禁什么意思(对方账号已被禁封是怎么回事)

  • 华为p40可以反向充电吗(华为p40可以反向给苹果手机充电吗)

  • 硬件系统中最重要的是(硬件最核心的部分)

  • 小米手机sn码有几位(小米手机sn码有字母)

  • ip地址是由什么组成的(IP地址是由什么为二进制比特组成的)

  • 显示器重影是什么原因(显示器重影模糊是什么原因)

  • reset键盘哪个位置(reset健在哪个位置)

  • 手机联系人如何找回(手机联系人如何移动至另一个手机)

  • vivo手机系统版本在哪里看(vivo手机系统版本过低怎么升级啊)

  • 荣耀20防水吗(荣耀防水吗?)

  • 怎么把光盘里的东西复制到电脑(怎么把光盘里的东西拷贝到手机里)

  • 24寸和27寸显示器对比(24寸和27寸显示器对比哪个舒服)

  • 拼返现几天可以解封(拼单返现能返多少)

  • 6.21英寸多大(6.21英寸屏幕多少厘米)

  • Windows11未显示在Windows更新中怎么办?Win11未显示在Windows更新修复方法(windows11不显示桌面)

  • 哪里有真实有效的win10 21H2激活密钥 最新win10永久通用激活码分享(哪里有办各种真实有效的证的)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络