前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >vue3+ts项目技术点总结1

vue3+ts项目技术点总结1

作者头像
用户9914333
发布于 2023-12-24 06:40:37
发布于 2023-12-24 06:40:37
18500
代码可运行
举报
文章被收录于专栏:bug收集bug收集
运行总次数:0
代码可运行

最近,在写vue3 + ts 项目,分享用到的一些技术点

1. 分页代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<el-pagination
        small
        background
        layout="prev, pager, next, jumper, total"
        :total="total"
        :current-page="pageNo"
        v-model:current-page="pageNo"
        v-model:page-size="pageSize"
        class="mt-4 pagination-fixed-bottom"
        @current-change="handleCurrentChange"
        ></el-pagination>

2. 下拉列表的使用

注意:value值的类型要绑定的v-model值的类型保持一致

加冒号( : ) ,让value变成了数字,没有加冒号就是字符串类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<el-select
      v-model="ruleForm.studentInfo.stuInfSex"
      placeholder="请选择性别"
>
     <el-option label="男" :value="1" />
     <el-option label="女" :value="2" />
 </el-select>

动态代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<el-select v-model="ruleForm.source.majorId">
    <el-option v-for="item in data.MajorList"
               :key="item.majorId"
               :label="item.majorName"
               :value="String(item.majorId)" />
</el-select>

3. 读取使用pinia数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { storeToRefs } from "pinia";
const store = TrainingDetailsManageStore();
// 下面申请的常量,是ref类型的
 const { 
  pageNo,
  pageSize,
  total,
  list
 } = storeToRefs(store);

const getDataByTrainingId =async ()=>{
  let res = await selectTrainingEnrollById(pageNo.value,pageSize.value,Number(trainingId));
  if(res.data.code == 0){
    //也可以直接使用store.setTotal方法修改pinia中的值
    store.setTotal(res.data.data.total);
    store.setList(res.data.data.list);
  }else{
    ElMessage.error(res.data.message);
  }
}

4. 页面跳转传参

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { useRouter } from "vue-router";
const router = useRouter();

//传参
router.push({
    path: "/conversiondetails",
    query: {
      id
    },
  });
  
 //获取参数
import { useRouter, useRoute } from "vue-router";

const router = useRouter();
const route = useRoute();
const id = route.query.id; //获取传递的id

5. 日期控件选择的时间与获取的时间差了一天

解决方法:需要指定value-format="yyyy-MM-dd"

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<el-date-picker 
  v-model="regTime"
  type="date"
  value-format="yyyy-MM-dd"
></el-date-picker>

6. 后端返回的文件内容,怎么让用户下载

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//向后端发起请求,获取文件信息
//注意:responseType类型的设置
export const exportData = (date : String) => {
  return axios({
    url: `/xx/xx/export`,
    responseType:'blob' ,
    method: "GET",
    params:{
        date
    }
  });
};

//获取数据后,怎么变成文件下载
exportData(year.value+"-"+month.value).then(res=>{
    const blob = new Blob([res.data]);
    const url = URL.createObjectURL(blob);
    const link = document.createElement('a');
    link.href = url;
    link.download = '学生数据.xlsx';
    link.click();
  });

7. 数据处理

思路:表格的列需要动态显示时,改变数据比改变表格更方便

如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const dataAdapter=(list:any)=>{
    if(list.length==0){
      return [];
    }
    let monthDays = new Date(year.value,month.value, 0).getDate(); //上一个月的最后一天日期
    let map;
      let key = "";
      let value = "";
      let hours ;
    
    //将对应天数的课时,写到map中
    for(let l=0;l<list.length;l++){
      map =  new Map();
      hours = list[l].List;
      if(hours.length!=0){
        for(let d=0;d<hours.length;d++){
          key = new Date(hours[d].time).getDate()+"";
          value =hours[d].cNum;
          map.set(key,value);
        }
      }
     
     //当前月的下半月
        for(let i=16;i<monthDays;i++){
            if(map.has(i+"")){
                //将对应天数的课时,进行赋值
                list[l]["date"+i]= map.get(i+"");
                continue;
            }
            list[l]["date"+i]= ""; 
        }
      
        //下个月的上半月
        for(let i=1;i<=15;i++){
          if(map.has(i+"")){
             list[l]["date"+i]= map.get(i+"");
             continue;
          }
          list[l]["date"+i]= ""; 
        }
    }
   
   console.log("list2",list);
    return list;
}

苟有恒 , 何必三更眠五更起

关注我,一起学习吧

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 bug收集 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vue3+ts+element-plus项目总结2
最近,在写vue3 + ts 项目,项目中使用技术点总结2 , 推荐收藏,供开发时使用
用户9914333
2024/02/05
1740
vue3+ts+element-plus项目总结2
vue3Cron表达式组件
no-vue3-cron仓库地址:https://github.com/wuchuanpeng/no-vue3-cron
风花一世月
2024/03/19
8020
低代码可视化-PC商城管理系统-产品分类--代码生成器
产品分类在商城管理系统中扮演着至关重要的角色。通过合理的分类,用户能够更快速地找到所需商品,提高购物效率。同时,分类也有助于商城对商品进行更有效的管理和展示,从而提升销售额和用户忠诚度。
用户7154236
2024/10/10
910
低代码可视化-PC商城管理系统-产品分类--代码生成器
前端如何借助 AI 工具提升开发效率
大家好,我是喵喵侠。在日新月异的前端开发领域,开发效率的提升显得尤为重要。随着人工智能(AI)技术的不断进步,各种AI工具在前端开发中的应用也越来越广泛。目前市面上的 AI 工具有很多,但基本用法都大差不大。所以在这篇文章,我会告诉你 AI 工具的通用技巧,带你了解如何借助AI工具来提升前端开发效率,并通过实际的业务场景和案例展示这些工具的实际应用效果。
喵喵侠
2024/06/07
9762
前端如何借助 AI 工具提升开发效率
浅学前端:Vue篇(二)
ElementUI是基于vue的一套组件库,前面讲述了如何自己去创建组件,但是自己创建组件成本太高了,所以我们一般都是采用一些第三方的比较成熟的组件库,ElementUI就是其中一中,使用之后可以大大减少我们的开发成本。
传说之下的花儿
2023/11/12
2530
浅学前端:Vue篇(二)
flask+vue:创建一个数据列表并实现简单的查询功能(一)
这里要用到element-ui中Select 选择器、 Form 表单 、DatePicker 日期选择器
冰霜
2022/03/15
2.3K1
flask+vue:创建一个数据列表并实现简单的查询功能(一)
学生管理系统Element UI版
链接:https://pan.baidu.com/s/1FAb2WUSUwpRuwIB9Spy3oQ  提取码:1234
陶然同学
2023/02/24
1.5K0
学生管理系统Element UI版
ElementUI快速入门
在执行完npm run dev后发现浏览器自动打开了vue-admin-template登录页面,点击登录,此时模板页面就搭建好了。
Java架构师必看
2021/05/14
3.2K0
ElementUI快速入门
后台数据管理系统 - 项目架构设计【黑马程序员】
在线演示:https://fe-bigevent-web.itheima.net/login
HelloWorldZ
2024/03/20
1.2K0
后台数据管理系统 - 项目架构设计【黑马程序员】
SSM 单体框架 - 前端开发:用户和权限模块
在查询条件中使用了 Element UI 中的日期选择器:https://element.eleme.cn/#/zh-CN/component/date-picker#mo-ren-xian-shi-ri-qi
RendaZhang
2020/10/09
1.7K0
SSM 单体框架 - 前端开发:用户和权限模块
从零开始做网站4-创建vue项目,整合后台系统
后端项目搭建出底子了,数据持久化也做了,然后就是前端开发了,首先呢是要创建一个vue项目,然后先做后台管理系统再高前台博客。。
sunonzj
2022/06/21
4330
从零开始做网站4-创建vue项目,整合后台系统
优学管理系统之课程管理
用户管理页面对应的是/course/index.html页面,根据产品设计的原型已经完成了页面基本结构的编写,现在需要完善页面动态效果。
用户9184480
2024/12/13
1180
优学管理系统之课程管理
Vue3项目-生成Cron表达式组件
  最近做的一个vue3项目过程中,需要用到cron表达式功能,而对于普通业务人员,他们是不懂cron表达式规则的,所以需要做一个可手动配置生成cron表达式的功能。从网上查找了一些相关资料,然后结合vue3+Element Plus,改造成适合自己项目的组件。记录代码如下:
用户1174387
2022/12/18
5.5K9
Vue3项目-生成Cron表达式组件
webpack+vue项目实战(四,前端与后端的数据交互和前端展示数据)
今天要做的,就是在上一篇文章的基础上,进行功能页面的开发。简单点说呢,就是与后端的数据交互和怎么把数据展示出来,用到的资源主要是element-ui和vue-resource,其它参考(vue-resource插件使用)。今天讲到的一些功能开发,主要就是请求列表数据,详情数据,分页功能操作,搜索,搜索标签等的开发。今天这个,按照下面步骤,一步一步来。一个一个功能的做!
守候i
2018/08/22
2.5K0
webpack+vue项目实战(四,前端与后端的数据交互和前端展示数据)
Vue-i18n 国际化
上边写的当前的语言切换是默认的状态,初始化的时候一定加载的是默认的,比如默认的是中文,无论你后期改成什么状态,最后重新加载时一定是中文
全栈程序员站长
2022/08/15
7500
Vue-i18n 国际化
Vue + Element UI:使table组件的td内容可编辑
后台管理系统,需要这个功能点的特别多,但Element UI 的table组件本身是不提供的,所以需要自行拓展一下。 在这里,给大家写一个简单的示例,希望对小伙伴们有所帮助。
Javanx
2019/09/04
5.8K0
Vue + Element UI:使table组件的td内容可编辑
从零开始做网站9-Springboot+vue简单的增删改查功能
因为很久没写过vue了,而且3.0还是第一回接触,所以一边学习一边做,进度还是稍慢的
sunonzj
2022/06/21
1.2K0
从零开始做网站9-Springboot+vue简单的增删改查功能
TienChin-课程管理-展示课程列表
程序员 NEO
2023/10/12
2020
TienChin-课程管理-展示课程列表
Element Form表单含有嵌套的数据校验
官网的例子 <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm"> <el-form-item label="活动名称" prop="name"> <el-input v-model="ruleForm.name"></el-input> </el-form-item> <el-form-item label="活动区域" prop="regio
tianyawhl
2020/04/08
3.2K0
谷粒学院day5 讲师管理模块的前端实现
前端页面登录的url经常会挂掉,要改为本地地址。启动前端的demo项目。浏览器右键选择inspect打开调试界面,切到Network,点击Login,具体操作参考下图。
半旧518
2022/10/26
4.6K0
谷粒学院day5 讲师管理模块的前端实现
相关推荐
vue3+ts+element-plus项目总结2
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文