vite+vue3+ts开发流程

9 篇文章 3 订阅
订阅专栏
本文展示了如何使用Vue进行页面开发,包括卡片区域、搜索与添加功能、用户列表展示,以及状态切换和操作按钮。数据类型定义了用户模型和查询信息,组件涵盖了表格和输入框等,同时实现了API接口调用来获取和操作用户数据。页面中结合组件、API和数据类型实现了用户管理和交互功能。
摘要由CSDN通过智能技术生成

目录

vue页面开发

数据类型开发

组件开发

API开发

页面中使用组件、API、数据类型


  1. vue页面开发

    1. <template>
          <!--    卡片区域-->
          <el-card style="padding:0px;">
              <!--      搜索与添加区域-->
              <div style="margin-bottom: 15px;">
                  <el-row :gutter="20">
                      <el-col :lg="5" :xs="15" :md="5" :sm="5">
                          <el-input placeholder="请输入内容" :suffix-icon="Search" v-model="queryInfo.obj.userName" :clearable="true"
                              v-permission="{ action: 'system:user:query' }" @clear="clear()">
                              <component class="icon" @click="search" :is="Search" />
                          </el-input>
                      </el-col>
                      <el-col :lg="5" :xs="5" :md="5" :sm="5">
                          <el-button type="primary" @click="addBtn" v-permission="{ action: 'system:user:add' }">添加
                          </el-button>
                      </el-col>
                  </el-row>
              </div>
              <!--      用户列表区-->
              <el-table :data="list" stripe>
                  <el-table-column type="index" label="#"></el-table-column>
                  <el-table-column label="用户名" prop="userName"></el-table-column>
                  <el-table-column label="昵称" prop="nickName"></el-table-column>
                  <el-table-column label="部门" prop="deptName"></el-table-column>
                  <el-table-column label="手机" prop="phonenumber"></el-table-column>
                  <el-table-column label="邮箱" prop="email"></el-table-column>
                  <el-table-column label="状态" prop="status">
                      <template #default="scope">
                          <el-switch v-model="scope.row.status" class="ml-2" inline-prompt active-value="0" inactive-value="1"
                              style="--el-switch-on-color: #13ce66; --el-switch-off-color: #ff4949" active-text="正常"
                              inactive-text="禁用" />
                      </template>
                  </el-table-column>
                  <el-table-column label="操作" width="180px">
                      <template #default="scope">
                          <el-button type="primary" :icon="Edit" size="small" @click="editBtn(scope.row)"
                              v-permission="{ action: 'system:user:add' }"></el-button>
                          <el-button type="danger" :icon="Delete" size="small" @click="deleteBtn(scope.row)"
                              v-permission="{ action: 'system:user:add' }"></el-button>
                          <el-tooltip effect="dark" content="分配角色" placement="top" :enterable="false">
                              <el-button type="warning" :icon="Setting" size="small" @click="grantBtn(scope.row)"
                                  v-permission="{ action: 'system:user:add' }"></el-button>
                          </el-tooltip>
                      </template>
                  </el-table-column>
              </el-table>
              <div style="padding-top: 30px;">
                  <el-pagination background layout="total, sizes, prev, pager, next, jumpe" :total="1000" />
              </div>
          </el-card>
          <addUser ref="addUserRef"></addUser>
      </template>
        
      <script lang="ts" setup true>
      import { Delete, Edit, Search, Setting } from '@element-plus/icons-vue';
      import addUser from './addUser.vue';
      import tableList from './tableList';
      
      const { queryInfo, list, addUserRef, search, clear, addBtn, editBtn, deleteBtn, grantBtn } = tableList()
      
      </script>
        
      <style scoped></style>
        
  2. 数据类型开发

    1. export type UserModel = {
          code: number,
          msg: string,
          page: {
              list: {
                  userName: string,
                  nickName: string,
                  email: string,
                  sex: string,
                  status: string,
                  phonenumber: string,
                  deptName: string
              },
              totalCount: number
          }
      }
      export type QueryInfoModel = {
          pageNum: number,
          pageSize: number,
          total: number
          obj: {
              userName: string,
              email: string,
              phonenumber: string
          }
      }
      
      export type AddUserMode = {
          userName: string,
          nickName: string,
          email: string,
          password: string,
          sex: string,
          status: string,
          phonenumber: string,
          deptId: string,
          deptName:string,
          remark: string
      }
      
      
  3. 组件开发

    1. import { onMounted, reactive, ref } from "vue";
      import { QueryInfoModel } from "@/api/model/user/userModel";
      import { getListAPI } from "@/api/model/user";
      //表格相关的业务处理
      export default function tableList() {
          const addUserRef = ref<{ show: () => void }>()
          const queryInfo = reactive<QueryInfoModel>({
              pageNum: 1,
              pageSize: 10,
              total: 0,
              obj: {
                  userName: '',
                  email: '',
                  phonenumber: ''
              }
          })
          const list = ref([] as any)
          //列表
          const getList = async () => {
              let res = await getListAPI(queryInfo)
              console.info(res)
              if (res && res.code == 200) {
                  list.value = res.page.list
                  queryInfo.total = res.page.totalCount
              }
          }
          //搜索
          const search = () => {
      
          }
      
          //清除
          const clear = () => {
      
          }
      
          //添加
          const addBtn = () => {
              addUserRef.value?.show()
          }
          //修改
          const editBtn = (row: any) => {
      
          }
          //删除
          const deleteBtn = (row: any) => {
      
          }
          //授权
          const grantBtn = (row: any) => {
      
          }
      
      
          onMounted(() => {
              getList()
          })
      
          return {
              queryInfo,
              list,
              addUserRef,
              getList,
              search,
              clear,
              addBtn,
              editBtn,
              deleteBtn,
              grantBtn
          }
      }
  4. API开发

    1. import http from "../../http";
      import { UserModel, QueryInfoModel, AddUserMode } from "./userModel";
      //list
      export const getListAPI = (params: QueryInfoModel) => {
          return http.post<UserModel>('admin/sysUser/list', params)
      }
      //add
      export const addUserAPI = (params: AddUserMode) => {
          return http.post<UserModel>('admin/sysUser/addUser', params)
      }
  5. 页面中使用组件、API、数据类型

    1. <script lang="ts" setup true>
      import { Delete, Edit, Search, Setting } from '@element-plus/icons-vue';
      import addUser from './addUser.vue';
      import tableList from './tableList';
      
      const { queryInfo, list, addUserRef, search, clear, addBtn, editBtn, deleteBtn, grantBtn } = tableList()
      
      </script>
        
      <style scoped></style>
        

Vue3+vite4 +TS后台模板
06-08
Vue3+vite4 后台模板
vue3+ts+vite开发后台管理系统技巧
zihan0321的博客
11-18 292
基于最新的 Vite / TypeScript / Vue3 / ElementPlus打造的前后端一体管理后台框架,免费开源,可以快速开发企业级应用。1.使用ref代替data 在Vue 3中,推荐使用ref来代替data。ref可以将一个普通的值转换为响应式数据。2.使用reactive创建响应式对象 Vue 3中,可以使用reactive来创建响应式对象。
Vue3+Ts+Vite -- 后台管理项目
最新发布
qq_62079814的博客
08-31 1718
husky是一个git hook工具,可以帮助我们触发git提交的各个阶段:pre-commit、commit-msg、pre-push。通常我们的git commit会按照统一的风格来提交,这样可以快速定位每次提交的内容,方便之后对版本进行控制。1.在前面创建项目的时候,我们就选择了ESLint,所以Vue会默认帮助我们配置需要的ESLint环境。安装插件:(vue在创建项目时,如果选择prettier,那么这两个插件会自动安装)
vite+vue3+ts开发项目构建过程
weixin_39838846的博客
07-13 528
vite+ts+vue3环境构建
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)
热门推荐
有来技术
04-17 6万+
vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 + Element Plus 版本的后台管理前端解决方案,技术栈为 Vue3 + Vite4 + TypeScript + Element Plus + Pinia + Vue Router 等当前主流框架。本篇是 vue3-element-admin v2.x 版本从 0 到 1,相较于v1.x 版本增加了对原子CSS(UnoCSS)、按需自动导入、暗黑模式的支持。
vue3 + TS + vite 搭建中后台管理系统(完整项目)
学全栈、大前端方向,就找前端早间课
01-04 5147
要成功,先发疯,头脑简单往前冲! 前端路上 | 所知甚少,唯善学。 各位小伙伴有什么疑问,欢迎留言探讨。 — 关注我:前端路上不迷路 —
基于vite+vue3+pinia+element-plus+ts后台管理系统源码+项目说明.zip
04-12
基于vite+vue3+pinia+element-plus+ts后台管理系统源码+项目说明.zip 基于vite+vue3+pinia+element-plus+ts后台管理系统源码+项目说明.zip 基于vite+vue3+pinia+element-plus+ts后台管理系统源码+项目说明.zip 基于...
vue3+ts+vuerouter+pinia+elementplus+ts环境模板搭建及vite打包优化
05-12
vue3+ts+vuerouter+pinia+elementplus+ts环境模板搭建及vite打包优化vue3+ts+vuerouter+pinia+elementplus+ts环境模板搭建及vite打包优化vue3+ts+vuerouter+pinia+elementplus+ts环境模板搭建及vite打包优化vue3+ts+...
基于Vite+Vue3+TS+Nuxt3的仿爱彼迎网站源码.zip
06-21
《构建基于Vite+Vue3+TS+Nuxt3的仿爱彼迎(Airbnb)网站源码解析》 在现代Web开发中,快速迭代和高效构建成为开发者关注的重点。本项目"基于Vite+Vue3+TS+Nuxt3的仿爱彼迎网站源码"正是这样一个实践案例,它巧妙地...
vite+vue3使用模块化批量发布Mockjs接口
03-29
综上所述,"vite+vue3使用模块化批量发布Mockjs接口"是一个全面的前端开发流程,涉及到Vite的配置、Vue3的组件开发以及Mockjs的接口模拟,旨在提供一个高效、便捷的开发环境,同时保持代码的清晰结构和良好的可维护...
基于vite+vue3+pinia+element-plus+ts后台管理系统
04-08
【标题】"基于vite+vue3+pinia+element-plus+ts后台管理系统"是一个现代的前端开发框架,用于构建高效、可扩展的企业级后台管理界面。这个项目整合了多种前沿的技术,旨在提供一个功能全面、性能优异的解决方案,...
vue3语法糖父子组件的通信
m0_58671981的博客
10-28 589
vue3语法糖父子组件的通信
vue3+vite+ts+pinia 后台管理项目总结
weixin_57031986的博客
01-16 1172
vue3+vite+ts+pinia 后台管理项目总结
vite+vue3+ts 手把手教你创建一个vue3项目
weixin_59916662的博客
10-17 6万+
基本全程cv安装router,less / scss,pinia,axios,element / Ant Design Vue,Echarts ,mockjs,以及如何配置@别名,自定义组件,vue-devtools插件。
推荐一个好用的vue3+vite4+ts+element-plus的 admin 管理后台模板。
u010454239的博客
09-27 2502
推荐一个好用的vue3+vite3+ts+element-plus的 admin 管理后台模板。
如果让我来搭建项目【规范篇】
jinchunye的博客
02-27 480
在项目比较合理的情况下,我们前端项目一般集成本文讲述的的规范,通过我们制定好的规范,在帮助团队提升了开发效率的同时,也向前迈出了相对坚实的一步。
vue3 + ElementUI plus中switch开关 inline-prompt 失效
weixin_47451403的博客
12-12 524
ElementUI中switch开关的使用--关于如何把文字显示在按钮上 inline-prompt 失效
Vite2 + vue3 + TS + ElementPlus 从零搭建后台管理系统 ( 一 ) (简单参照)
hsany330的专栏
06-20 1130
1. Vite 安装使用以及配置为什么选 Vite?安装:然后,再直接使用模板:NPM 安装模板需要查看下 npm 版本: npm -v本章使用 npm 6.x 版本安装 vue-ts 模板 查看支持的模板预设 模板安装好后浏览器打开:http://localhost:3000/到此 vite 搭建的 vue-ts 模板项目完成2. vite 配置别名使用编辑器打开搭建号的项目 进入配置文件 vite.config.ts 别名配置后: 这里就可以随意配置别名了,跟 webpack 差不多此时 T
vue3+vite+ts使用monaco-editor编辑器
weixin_43909743的博客
11-01 1万+
vue3+vite+ts使用monaco-editor编辑器
vite+vue3+ts+项目搭建
11-01
vite+vue3+ts+项目搭建是一种基于Vite构建工具,使用Vue3和TypeScript技术栈的前端项目搭建方式。它可以帮助开发者快速搭建一个基于Vue3和TypeScript的前端项目,并且具有较好的性能表现和开发体验。 以下是vite+vue3+ts+项目搭建的步骤: 1. 安装Node.js和npm 2. 使用npm安装Vite:npm install -g vite 3. 创建一个新的Vue3项目:vite create my-project --template vue-ts 4. 进入项目目录:cd my-project 5. 安装项目依赖:npm install 6. 启动项目:npm run dev 在项目搭建完成后,你可以使用Vue Router和Pinia等库来实现路由和状态管理,使用Element Plus等UI库来实现页面布局和组件开发。同时,你也可以使用Vite提供的打包优化功能来提升项目的性能表现。
写文章

热门文章

  • spring boot之 Bean的初始化和销毁(4) 18104
  • layer之table用法 13440
  • spring boot爬坑之旅途--shiro-MyShiroConfig配置(config)(8) 10752
  • spring boot之spring mvc常用配置--viewController(6) 10157
  • layer之layui-row瀑布流加载 9733

分类专栏

  • mybatis 1篇
  • docker 2篇
  • vue3 9篇
  • uniapp+vue3+vite+pinia2.0.33 2篇
  • gradle
  • javaweb 9篇
  • JAVA 23篇
  • spring boot +shiro 13篇
  • oracle 1篇
  • 存储过程、函数、触发器、优化方案 1篇
  • linux知识 1篇
  • layer 3篇
  • spring boot之mvc注解 22篇
  • reids 1篇
  • poi 1篇
  • ztree 1篇
  • jquery 1篇

最新评论

  • docker-常用软件配置

    m0_54805253: 感谢大佬分享好文,学到了不少新知识,支持大佬,期待大佬持续输出优质文章!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • docker-常用软件配置

    CSDN-Ada助手: 云原生入门 技能树或许可以帮到你:https://edu.csdn.net/skill/cloud_native?utm_source=AI_act_cloud_native

  • Vue3 + Element Plus 实现动态标签页及右键菜单

    23朵毒蘑菇: 写的不错,互相学习 https://admin.dumogu.top/main/index

  • Vue3 + Element Plus 实现动态标签页及右键菜单

    转身遇见你: 已经明白了

  • Vue3 + Element Plus 实现动态标签页及右键菜单

    转身遇见你: 这里哪个方法是右键的啊

大家在看

  • 算术运算指令 284
  • 代码练习:水仙花数 148
  • 代码练习:打印日历
  • 基于ssm+vue高校院级校友信息管理系统(开题报告+程序+论文+java) 470
  • 双向链表 —— 初始化、尾插、头插、bool类型判断、尾删、头删、查找数据、在pos位置之后插入结点、删除指定位置结点、销毁链表、打印函数 1142

最新文章

  • mybatisPlus只需要实体类
  • docker-常用软件配置
  • CentOS9安装docker
2024年3篇
2023年12篇
2019年1篇
2018年43篇
2016年6篇
2015年30篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司盐池网站优化专业公司泰州网站关键字优化网站排名怎么优化的怎样检测网站的优化海南网站建设优化公司哪家好网站怎么优化盒纷云速捷来看服装行业网站优化引流西安关键词网站排名优化小程序网站优化平台杭州网站关键词优化武威网站优化推广多少钱杭州新网站优化河源企业网站关键词优化多少钱宣城网站关键词排名优化商洛网站优化价位黄石本地网站优化公司排名贵阳模板网站优化系统泰州网站优化人眉山手机网站优化服务中山营销型网站优化方案优化网站工具有哪些校园网站有什么优缺点如何优化增城网站优化多少钱小吃加盟网站优化比较好东莞网站优化排名工具贺兰网站优化官渡区网站优化价格呈贡网站建设优化贵溪网站排名优化软件没有网站做优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化