定制app开发uniapp全局组件全局使用(不在每个页面template使用,仅支持H5),函数式调用全局组件方法

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

  1. // main.js
  2. // 引入组件
  3. import xxx from "@/components/xxx.vue";
  4. // 将该组件挂载在document.body下
  5. document.body.appendChild(new xxx().$mount().$el);

函数式调用全局组件方法

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

  1. <template>
  2. <toast ref="toast"></toast>
  3. </template>
  4. <script>
  5. export default {
  6. methods:{
  7. showToast(){
  8. this.$refs.toast.show();
  9. }
  10. }
  11. }
  12. </script>

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

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

实现方式:

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

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

  1. // ...
  2. import render from "@/utils/render";
  3. Vue.prototype.$r = render;
  4. // ...

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

  1. // utils/render.js
  2. // 引入vue
  3. import vm from "vue";
  4. // toast组件
  5. import toast from "@/components/xxx/toast.vue";
  6. export default {
  7. /**
  8. * 全局toast弹窗
  9. */
  10. toast(){
  11. // 全局注册toast组件
  12. const toastCom = vm.component('toast',toast);
  13. // 获取uniapp根节点
  14. const uniappRoot = document.getElementsByTagName("uni-app")[0];
  15. // 初始化toast组件
  16. const toastComp = new toastCom();
  17. // 这里我每个组件内都有一个固定id,用来禁止同意组件生成多次
  18. if(document.getElementById(toastComp.id)){
  19. document.getElementById(toastComp.id).remove();
  20. }
  21. // 将toast组件添加在uniapp根节点上
  22. uniappRoot.appendChild(toastComp.$mount().$el);
  23. return toastComp;
  24. }
  25. }

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

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

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

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

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

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

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

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

 

广告:(提供学习机会)

       前端交流学习群:1063233592

       PHP学习交流群:901759097

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

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发