vue3使用ref动态获取组件,并对动态表单组件进行校验 项目开发过程中,遇到一种情况,需要动态加载多个表单,并且在提交时,需要对所有提交的表单进行校验。研究了一些文档,最终完成了需求。本文的实现是基于vue3+element组件里的form表单作为示例的
vue3非直接组件之间的通信(eventBus) 这个方法使用了简单的 EventBus 机制,使 ComponentA.vue 组件可以通过 emit 事件发送消息,而 ComponentB.vue 组件可以通过 on 监听相应的事件。在此示例中,BrotherA.vue 组件通过事件更新父组件中的 siblingData,而 BrotherB.vue 则通过 props 接收这个数据。可以借助父组件或者更现代的状态管理工具。
前端页面操作防抖函数封装及应用 函数防抖其实是作为一名前端同学必备的技能了,之前一直偷懒都借用页面loading或者按钮loading来实现。最近在开发微信小程序,过多的loading会带来不好的体验,同时在跳转页面的时候,不好用loading来防抖。所以就会出现连续连击多次会切一个页面多次的情况,所以只得使用防抖函数来实现了。我也看了很多别的同学写的封装函数,要么就是不接收形参,导致外面的参数在防抖函数里面无法拿到,要么就是将定时器定义丢在函数里面,导致每次点击都会重新定义定时器,但是并没有达到清除定时器的目的。
【按照年月去统计信息并分类展示】 需求是需要将历史订单按照年月分类展示,并展示汇总值。由于后端返回的是数组的数据,并没有将数据做好统计分类,出于对自己的自信以及不想给别人添麻烦的信息,然后自己写了一下处理的方法,然后放上最后的效果图吧。
整理一下自己常用的vscode插件(不定期更新中) 1. 实用型1.1 Auto Close Tag自动补全 html 标签1.2 Auto Rename TagAuto Rename Tag这是一个修改标签对的插件。特征:重命名一个HTML / XML标签时,自动重命名配对的HTML / XML标签使用:在其中添加条目auto-rename-tag.activationOnLanguage以设置扩展名将被激活的语言。默认情况下,它将["*"]为所有语言激活。{ "auto-rename-tag.activationOnLanguage"
promise封装 //创建一个Promise的类 class Promise{ constructor(executer){//构造函数constructor里面是个执行器 this.status = 'pending';//默认的状态 pending this.value = undefined//成功的值默认undefined this.reason = undefined//失败的值默认undefined //状态只有在pending时候才能改变
antv l7 绘制中国地图并在对应的地方添加marker 使用技术 @antv/l7html代码<template> <div class="map-wrapper"> <!-- <div class="title">全国用户地图分布</div> --> <div class="content"> <div id="map"></div> </div> <.
antv g2绘制中国地图及每个省份区域单独展示 使用技术: antv g2地图文件:https://gw.alipayobjects.com/os/antvdemo/assets/data/china-provinces.geo.json该文件可以直接在线引入,也可以下载到本地使用,在这里我是直接下载到本地的html代码<template> <div class="map-wrapper"> <div class="content" ref="mapChart"> .
封装Ajax function ajax(obj) { return new Promise((resolve, reject) => { //指定提交方式的默认值 obj.type = obj.type || "get"; //设置是否异步,默认为true(异步) obj.async = obj.async || true; //设
数组的常用方法总结 获取指定数组的长度 arr.lengthconsole.log(["a", "b", "c"].length ) // 3通常情况下,如果想判断一个数组是否为空,可以通过数组的长度是否为零来判断。数组和字符串的相关转换2.1 数组转换为字符串console.log(["a", "b", "c"].join("")) // "abc"该方法会返回一个新的字符串,原来的数组并不会被改变也可以用Array.toString()方法进行转换["a", "b", "c"].toStri.
远程仓库地址管理 设置远程仓库地址git remote add origin gti@github.com:远程仓库地址url 或者在这里插入代码片git remote add origin gti@github.com:远程仓库地址url查看远程仓库地址:git remote -v移除远程仓库 git remote rm + 地址名看图说话吧(当重复添加已经存在的远程仓库会报错)在这里插入图片描述踩坑实记:当存在多个远程地址时,如果在本地项切换到远程的新增的分支,会报错。这时候删除远程不用的地址,就可以啦.
js获取数组中最大最小值及对应索引值(下标) 1.使用原生Js实现该功能,主要是通过循环实现getMaxMin = (data, key) => { if (!data) { return false } let maxIndex = 0 let minIndex = 0 let maxNum = data[0][key] || 0 let minNum = (data[0][key] && data[0][key] !== 0) ? Infinity : data
在Vscode中生成自定义的用户代码块 作为编程人员,在工作中快速生成自己常用且实用的代码块,可以打打提高工作效率。因此,自己闲暇之余研究了一下如何生成自定义的vue代码块。首先 ,你需要进入到对应的配置页面(文件 -->首选项 --> -->用户片段) /(设置按钮 --> 用户代码片段)输入vue选择vue.json进入配置界面;输入如下代码块{ "Print to console": { "prefix": "vh", "body": [ "&l
查看和更改镜像地址 1. 使用命令查看本地镜像地址`$ npm config get registry #查看镜像地址`修改镜像地址$ npm config set registry https://registry.npm.taobao.org/ #设置淘宝镜像地址2. 使用nrm管理镜像地址安装nrmnpm install -g nrm查看镜像列表nrm ls3. 切换镜像地址(nrm use + 地址名称)nrm use taobao添加镜像地址nrm add r_
判断当前环境是ios还是安卓 判断当前环境是ios还是安卓/** * @name 判断iOS */export const isiOS = ()=>{ let u = navigator.userAgent; let iOs = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端\ return iOs;}/** * @name 判断android */export const isAndroid = ()=>{ let u
关于日期时间与时间戳之间的互相转换 关于日期时间与时间戳之间的互相转换在开发中,经常在前后端数据交互的时候,我们在传递时间或者获取到时间的时候需要使用时间戳格式;但是在页面上渲染的时候,需要展示成我们熟悉的年月日,时分秒格式。因此,总结了一下日期时间与时间戳之间的相关转换的常用方法。日期时间转换为时间戳通过原型的方法function getTimestamp(date) { // date为需要转换的时间 return new Date(date).getTime()}通过原型方法直接准确的获得当前时间的毫秒
js实现将链接生成二维码,并对生成的二维码转换为图片,右击可保存至本地 1.安装及引用首先,实现这个功能需要使用QRCode和html2canvas,所以在使用之前需要安装npm install --save html2canvasnpm install qrcodejs2 --save在页面中引入import QRCode from 'qrcodejs2'import html2canvas from 'html2canvas'2. html部分<template> <div class="code-box" ref="codeB
Element组件中的日期选择器自定义日期选择范围 html部分:<el-date-picker type="daterange" slot="dateList" class="wy-input-with" v-model="dateList" unlink-panels :picker-options="pickerData" value-format="yyyy-MM-dd" @change="chan.