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

vue3整合element-plus

 

为项目命名  选择vue 框架 选择TS 

启动测试: npm run dev 

开始整合 element-plus

npm install element-plus --save
npm install unplugin-vue-components unplugin @vitejs/plugin-vue --save-dev

  修改main.ts

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')

 修改vite.config.ts

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'export default defineConfig({plugins: [vue(),Components({resolvers: [ElementPlusResolver()],dts: true, // 自动生成一个 components.d.ts 文件,帮助 TS 识别}),],
})

检查 tsconfig.app.json

{"files": [],"references": [{ "path": "./tsconfig.app.json" },{ "path": "./tsconfig.node.json" }]
}

修改 tsconfig.app.json

{"extends": "@vue/tsconfig/tsconfig.dom.json","compilerOptions": {"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",/* Linting */"strict": true,"noUnusedLocals": true,"noUnusedParameters": true,"erasableSyntaxOnly": true,"noFallthroughCasesInSwitch": true,"noUncheckedSideEffectImports": true,"types": ["element-plus/global"]},"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"]
}

修改 App.vue

<template><Login/>
</template><script setup lang="ts">
import Login from './components/Login.vue'
</script><style scoped>
</style>

 Login.vue

<template><div class="login-container"><el-card class="box-card"><template #header><div>用户登录</div></template><el-form :model="form" :rules="rules" ref="formRef"><el-form-item label="用户名" prop="username"><el-input v-model="form.username" /></el-form-item><el-form-item label="密码" prop="password"><el-input v-model="form.password" type="password" show-password /></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">登录</el-button><el-button @click="onReset">重置</el-button></el-form-item></el-form></el-card></div>
</template><script setup lang="ts">
import { ref } from "vue";const form = ref({ username: "", password: "" });
const rules = {username: [{ required: true, message: "请输入用户名", trigger: "blur" }],password: [{ required: true, message: "请输入密码", trigger: "blur" }],
};
const formRef = ref();function onSubmit() {if (formRef.value) {formRef.value.validate((valid) => {if (valid) alert("提交成功");});}
}function onReset() {if (formRef.value) {formRef.value.resetFields();}
}
</script><style scoped>
.login-container {display: flex;justify-content: center;align-items: center;height: 100vh;
}
.box-card {width: 400px;
}
</style>

npm run dev 效果 

http://www.xdnf.cn/news/1065997.html

相关文章:

  • WebSocket快速入门
  • 卓易通是什么
  • 深度学习:PyTorch卷积神经网络(CNN)之图像入门
  • 【软考高级系统架构论文】论企业集成平台的理解与应用
  • Spring Boot 使用 ElasticSearch
  • 大数据时代UI前端的变革:从静态展示到动态交互
  • ISCSI存储
  • FreeRTOS 介绍、使用方法及应用场景
  • RabbitMQ从入门到实践:消息队列核心原理与典型应用场景
  • 跨域视角下强化学习重塑大模型推理:GURU框架与多领域推理新突破
  • 【论文阅读笔记】TransparentGS:当高斯溅射学会“看穿”玻璃,如何攻克透明物体重建难题?
  • 【破局痛点,赋能未来】领码 SPARK:铸就企业业务永续进化的智慧引擎—— 深度剖析持续演进之道,引领数字化新范式
  • 针对数据仓库方向的大数据算法工程师面试经验总结
  • 计算机网络通信技术与协议(九)————交换机技术
  • 前端手写题(一)
  • leetcode51.N皇后:回溯算法与冲突检测的核心逻辑
  • Linux——6.检测磁盘空间、处理数据文件
  • 【分布式技术】Bearer Token以及MAC Token深入理解
  • Python商务数据分析——Python 入门基础知识学习笔记
  • Node.js特训专栏-实战进阶:6. MVC架构在Express中的应用
  • C++智能指针编程实例
  • 目标检测neck算法之MPCA和FSA的源码实现
  • UE5 游戏模板 —— ThirdPersonGame
  • 深度解析云计算网络架构:VLAN+OVS+Bonding构建高可靠虚拟化平台
  • 给同一个wordpress网站绑定多个域名的实现方法
  • 人工智能、机器人最容易取哪些体力劳动和脑力劳动
  • 《计算机网络:自顶向下方法(第8版)》Chapter 8 课后题
  • 从零开始手写redis(16)实现渐进式 rehash map
  • (码云gitee)IDEA新项目自动创建gitee仓库并直接提交
  • 【Datawhale组队学习202506】YOLO-Master task03 IOU总结