当前位置: 首页 > news >正文

自定义element-ui plus 函数式调用,在API,js中直接使用全局组件

npm方式:

npm install -D unplugin-vue-components unplugin-auto-import

yarn 方式 :

yarn add unplugin-vue-components;
yarn add unplugin-auto-import;

 

 使用官方的这个:

vite.config.js中配置
plugins: [vue(),AutoImport({resolvers: [ElementPlusResolver()],}),Components({resolvers: [VantResolver(), ElementPlusResolver()],}),],

 LoginDialog.js定义

import {createApp} from 'vue'
import SubDialog from './LoginDialog.vue'/*** 关键函数挂在整个页面上去*/
const createDialog = () => {const mountNode = document.createElement('div')mountNode.setAttribute('id', 'dialog-mask-dialog')const Instance = createApp(SubDialog, {show: true,close: () => {Instance.unmount(mountNode);document.body.removeChild(mountNode);}})document.body.appendChild(mountNode)Instance.mount(mountNode)
}export default createDialog

LoginDialog.vue 定义 

<template><Teleport to="body"><el-dialogv-model="props.show"title="登录"width="500px"center><el-form :model="loginForm" :rules="formDataRule" ref="formRef" label-width="120px"><el-form-item label="用户名" prop="phone"><el-input v-model="loginForm.phone" placeholder="输入手机号"/></el-form-item><el-form-item label="验证码" prop="verifyCode"><div style="display: inline-block"><el-input v-model="loginForm.verifyCode" placeholder="输入验证码"/></div><div style="display: inline-block"><el-button>获取验证码</el-button></div></el-form-item><el-form-item><el-button type="primary" @click="submitLogin(formRef)">登录</el-button></el-form-item></el-form></el-dialog></Teleport>
</template><script setup>
import {reactive, ref} from "vue";const formRef = ref(null)const loginForm = reactive({phone: '',verifyCode: ''
})const formDataRule = {phone: [{required: true, message: '手机号不能为空', trigger: 'blur'}],verifyCode: [{required: true, message: '验证码不能为空', trigger: 'blur'}]
}const props = defineProps({show: {type: Boolean,default: false}
})const submitLogin = (ref) => {ref.validate((valid) => {if (valid) {console.log('submit!')} else {console.log('error submit!')return false}})
}</script><style scoped></style>

http://www.lryc.cn/news/218255.html

相关文章:

  • [LeetCode]-876.链表的中间结点-206.反转链表-21.合并两个有序链表-203.移除链表元素
  • 通过git多人协调开发
  • CentOS 7 通过 yum 安装 MariaDB(Mysql)
  • 【Solidity】Remix在线环境及钱包申请
  • ARFoundation系列讲解 - 92 涂鸦效果
  • 立创eda专业版学习笔记(8)(运行模式)
  • 349.两个数组的交集+350.两个数组的交集II(set/multiset)
  • 数据结构与算法之排序: 桶排序 (Javascript版)
  • Android studio新版本多渠道打包配置
  • PTA:后序和中序构造二叉树
  • 二十三种设计模式全面解析-适配器模式的妙用:异构数据库和不同版本API的完美兼容!
  • K7系列FPGA进行FLASH读写1——CCLK控制(STARTUPE2原语)
  • 【Kafka】基本概念
  • 如何在Vue3项目中使用防抖节流技巧
  • 快速排序(Java)
  • 在ffmpeg中,如何把h264转换为rgb格式
  • 【重磅】Cookies、headers、Session规律总结,搞定卡点
  • 【雷达原理】雷达杂波抑制方法
  • Python-敲木鱼升级版(真手动版敲木鱼)
  • Websocket @ServerEndpoint不能注入@Autowired
  • Unity热更新
  • 如何用维格云搭建和一键训练你的钧瓷AI机器人?
  • 整理的一些Java细节问题
  • 初识AUTOSAR网络管理
  • Flink SQL Hive Connector使用场景
  • 【Docker】联合探讨Docker:容器化技术的革命性应用
  • dirhunt使用手册,中文版
  • 【从0到1设计一个网关】如何设计一个稳定的网关?
  • chromedp库编写程序
  • pngquant failed to build, make sure that libpng-dev is installed 问题