IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 如何用js的方法 调用组件 uniapp(弹框) -> 正文阅读

[JavaScript知识库]如何用js的方法 调用组件 uniapp(弹框)

通常情况下,我们封装组件,然后调用,通过import 引入,再书写components,再调用,遇到使用频率很高的弹框,就是显得很麻烦,冗余。

案例以 uniapp的uview插件的u-model为例

1.首先创建 index.vue, index.js文件
在这里插入图片描述
2.index.vue 页面

<template>
  <view class="components-message">
    <u-modal
      v-model="showModel"
      :content="content"
      :title="title"
      :show-cancel-button='showCancel'
      @cancel="handleClose"
      @confirm="handleBtn"
      :confirm-text='confirmText'
      :cancel-text='cancelText'
      :mask-close-able='maskcloseAble'
    ></u-modal>
  </view>
</template>

<script>
// import引入的组件需要注入到对象中才能使用
export default {
  name: "Cmessage",
  // 组件模板
  components: {},
  data() {
    // 这里存放数据
    return {
      showModel: false,//是否显示
      title:'提示',//标题
      content: "",//内容
      showCancel:true, //是否显示取消按钮
      confirmText:'确认', //确认文字
      cancelText:'取消',//取消文字
      maskcloseAble:true, //是否允许点击遮罩关闭Modal
    };
  },
  // 监听属性 类似于data概念
  computed: {},
  // 监控data中的数据变化
  watch: {},
  // 生命周期 - 创建完成(可以访问当前this实例)
  onLoad(options) {},
  // 生命周期 - 页面展示(不可以访问DOM元素)
  onShow() {},
  // 生命周期 - 挂载完成(可以访问DOM元素)
  onReady() {},
  // 方法集合
  methods: {
    emitBtn() {},
    emitClose() {},
    handleClose() {
      this.$el.parentNode.removeChild(this.$el);
      this.emitClose();
    },
    handleBtn() {
      this.$el.parentNode.removeChild(this.$el);
      this.emitBtn();
    },
  },
  onHide() {}, // 生命周期 - 监听页面隐藏
  onUnload() {}, // 生命周期 - 监听页面卸载
};
</script>
<style lang='scss'>
</style>

3 .index.js

import Vue from 'vue';
import Message from './index.vue';

const MessageConstructor = Vue.extend(Message); //注册实例

export const Cmessage = (options,methods = {}) => {
  const instance = new MessageConstructor(
    {
  //   el: document.createElement('view'),
    data: options,//数据
    methods //方法
  }
  ).$mount();//挂载实例
  document.body.appendChild(instance.$el);
}

4.使用 main.js 全局注册

import { Cmessage } from '@/components/message/index.js';
//js调用弹框
Vue.prototype.$Cmessage = Cmessage

5.使用

this.$Cmessage({showModel:true,content: '登录状态已过期,您可以继续留在该页面,或者重新登录',maskcloseAble:false}, {
//确认
	emitBtn () {
		store.dispatch('LogOut').then((res) => {
			uni.reLaunch({
				url:'/pages/login/index'
		    })
		})
	},
	//取消
	emitClose() {
		console.log('用户点击取消');
	},
});

6.效果图
在这里插入图片描述
帮助到你的话点赞支持一下~

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 23:16:14  更:2022-04-01 23:18:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:23:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码