
前端
文章平均质量分 63
归来巨星
一名致力于新技术的推广与优秀技术的普及的前端开发工程师。个人开源项目:TinkerBell-ui,TinkerBell-ui-react,TinkerBell-ui-next,react_ruoyi_admin,Tinkerbell-Blog等。
展开
-
项目中 .env.development 与 .env.production 的区别
我们在开发项目时,经常会有开发环境与生产环境,分别会对应不同的请求地址与各种不同的变量,这个时候我们就可以使用 process.env 去抓取这两个文件写的变量,从而实现测试环境与生产环境的区分。使用上方命令,即可获取到不同的数据。原创 2023-10-16 09:58:38 · 542 阅读 · 0 评论 -
实用技巧 一文解决 echarts 如何设置 legend 展示为虚线?
里面对应着很多常用的legend图形,当然-没有虚线,这个时候我们就需要利用到官网给出的icon属性去进行手动实现。这些配置项,以及一系列的数据项,我们可以参考社区的对应文档。拼接 path:// + path 里面的 d 属性。我们可以参考echarts的官方文档,他给出了我们。我们可以使用图片路径,也可以使用 svg 路径。我们可以参照iconfont,下载svg。复制里面的svg代码。原创 2023-04-04 13:48:57 · 4640 阅读 · 2 评论 -
如何在dom节点上使用fixed定位?实现基于父节点而不是浏览器的滚动定位?一眼看懂,简单明了。
其实另外一种实现方式,我们也可以用js去计算节点被卷去的高度,滚动的时候不停的位移,然后将top进行一个变更,但是此种方法就没有必要了,包括第二种iframe嵌套的方式,其实如果就是想因为一个dom元素使用fixed去构建一个iframe窗口的话是没有必要的,所以我们还是推荐使用第一种方式。原创 2023-02-13 14:23:32 · 1305 阅读 · 4 评论 -
js 金钱数字添加千分位分隔符号
输出格式 000,000,000.00。原创 2022-12-23 10:51:43 · 689 阅读 · 1 评论 -
axios 设置单个请求超时时间,以及整体设置超时时间
在编写 axios 请求脚手架,我们不免得要整体设置下超时时间,整体使用axios.create 设置timeout即可。如果我们设置单个超时请求的话,参照axios官网的。原创 2022-12-23 10:35:21 · 10647 阅读 · 0 评论 -
手机号敏感校验,隐藏中间四位数用*代替
手机号中间四位使用星号代替原创 2022-12-23 09:54:39 · 525 阅读 · 0 评论 -
如何使用 markdown 结合组件 props 实现可控制的响应式 ui组件库 文档
✨ 每天创作一点点✨ 开心快乐一整天✨ 美好一天又一天。原创 2022-10-24 09:04:24 · 1209 阅读 · 0 评论 -
vue Template模板中针对属性如何写空白字符串占位符?(\u00a0)会是一个好的空格占位解决方案
解决空白占位符的几种方案原创 2022-09-05 18:07:36 · 2685 阅读 · 0 评论 -
教你一文解决 js 数字精度丢失问题
✨每天创作一点点✨开心快乐一整天✨美好一天又一天。原创 2022-07-26 15:00:08 · 21743 阅读 · 2 评论 -
git 合并 dev 分支到 master
三步,前提一定要保证数据是当前分支最新git checkout mastergit merge devgit push原创 2022-01-24 14:57:58 · 933 阅读 · 0 评论 -
css3实现 png 图片高亮自左到右过渡的方式 (一张图实现不遮住png的透明背景)
文章目录一、用一张图解释想要实现的效果。二、思考:如何实现?实现的多种方式。2.1、2图代码及实现效果2.2、单图过滤实现效果2.3、单图遮罩实现效果一、用一张图解释想要实现的效果。二、思考:如何实现?实现的多种方式。2.1、2图代码及实现效果我们先去设想一下,如果是两张图那么很简单的就实现了,先说一下两张图的实现思路:创建一个包裹div,创建两个divbox模块div模块内部都是img标签 给img标签设置固定的宽高包裹div设置相对定位,两个divbox设置绝对定位,box模块2,设置原创 2021-12-02 14:27:48 · 3521 阅读 · 26 评论 -
react如何实现在网页中全屏操作?
1、utils.ts文件var document: any = window.document;export function requestFullScreen(element: any) { var requestMethod = element.requestFullscreen || element.webkitRequestFullscreen || element.msRequestFullscreen || element.mozRequestFullScreen; if (req原创 2021-11-17 15:51:49 · 2156 阅读 · 3 评论 -
React 表格内自定义组件不进行实时更新,采用更新key方式实时更新组件,以及直接变更开关 defaultChecked 为 checked 状态实现表格组件更新
文章目录一、使用useState变更表格数据,表格内的开关组件并不会更新组件?二、使用组件唯一 key 实现每刷新一次表格,key值都会变更,从而实现组件更新的功能。三、变更 defaultChecked 为 checked 实现自定义组件的监听更新。一、使用useState变更表格数据,表格内的开关组件并不会更新组件?首先我们可以看一下代码,我在这边是采用的 defaultChecked ,也就是组件初次的默认值进行数据变更但是不免得会有一个问题就是,表格内的组件只在第一次加载时是对的,当我变更原创 2021-10-18 11:09:19 · 1581 阅读 · 12 评论 -
React 使用 Antdesign 表格如何展示多级嵌套内容?
一、如图展示表格如何展示下方嵌套的deptName官网二、解决方案<Column align="center" title="部门" dataIndex={["dept", "deptName"]} />原创 2021-10-12 17:18:10 · 1507 阅读 · 0 评论 -
React 使用两种路由(hash|history)模式 调用实例 createHashHistory、createBrowserHistory 实现跳转页面
文章目录一、组件props跳转路由二、在 request.ts 无法获取到 props 的页面调用路由实例实现路由跳转2.1、hash示例2.2、history实例一、组件props跳转路由路由嵌套后我们就可以在嵌套的子组件中使用 props 去调用 history 实现路由跳转如下// 跳转登录页props.history.push("/login")二、在 request.ts 无法获取到 props 的页面调用路由实例实现路由跳转首先我们还是要分清我们的路由模式hash(原创 2021-10-12 11:35:50 · 7439 阅读 · 6 评论 -
前端 vue 上传文件到阿里云 OSS 服务器
oss设置跨域js文件// 创建OssClient.jsimport OSS from 'ali-oss'const client = new OSS({ region: '地区名称', accessKeyId: 'oss申请的keyId', accessKeySecret: 'oss申请的keySecret', bucket: 'oss设置的bucket'})// client.options.bucket = 'jbd-jxy/files/'export default原创 2021-09-28 09:02:22 · 1581 阅读 · 1 评论 -
github管理项目 使用 webhooks 实现推送,服务器实时自动部署
文章目录一、配置 github ,监听推送向指定的服务器端口发起 push 行为二、配置服务器,安装 git ,node ,pm2三、启动 node 服务器,执行 sh 文件首先我们要考虑的一个问题是,git推送,服务器实时部署的原理是什么?如下图主要的流程过程本地代码push → 远程库发起请求 → 服务器更新那么流程是这样一个流程,具体的我们该如何实现呢?一、配置 github ,监听推送向指定的服务器端口发起 push 行为首先还是打开我们要监听的 github 地址,找到 setti原创 2021-09-08 10:02:32 · 2652 阅读 · 2 评论 -
微信小程序实现类似微信提现、支付宝提现充值等 “自定义键盘“可实现自定义右下角搜索内容,手写input功能view组件,实现焦点获取事件
keyboard.wxml<view class='input_view'> <text class='title'>提现金额:</text> <view class='input_box' bindtap='pay'> <text class='input_label'>¥</text> <text class='content'>{{inputPassword}}</text>原创 2021-09-02 17:15:29 · 1638 阅读 · 0 评论 -
微信小程序使用 ocr 身份证识别
文章目录一、打开服务平台开启插件二、搜索ocr,单击开发者资源、找到对应的微信ocr识别,进行购买一天有100次调用。三、在项目中引入一、打开服务平台开启插件二、搜索ocr,单击开发者资源、找到对应的微信ocr识别,进行购买一天有100次调用。三、在项目中引入打开根目录app.json "plugins": { "ocr-plugin": { "version": "3.0.6", "provider": "wx4418e3e031e551be" }原创 2021-09-01 10:10:18 · 4194 阅读 · 1 评论 -
浅谈总结 vue2 到 vue3 的细节变更
文章目录1、v-for的ref数组。2、异步组件的加载3、attribute的变更。[4、$attrs 的变更。](https://v3.cn.vuejs.org/guide/migration/attrs-includes-class-style.html)5、$children的变更。6、vue自定义指令的变化。7、新增emits选项。[8、$on、 $off、 $once 实例方法的变更。](https://v3.cn.vuejs.org/guide/migration/events-api.html原创 2021-08-26 11:15:58 · 1114 阅读 · 0 评论 -
vue3 props 如何接受多个类型?
采用vue2写法,编辑器报错vue3 变更为数组写法原创 2021-08-23 10:57:22 · 7641 阅读 · 0 评论 -
什么是javaScript的EventLoop(事件循环)?EventLoop采用何种机制进行循环,用于解决什么?
文章目录一、什么是EventLoop?1.1、javaScript是单线程。1.2、javaScript的同步、异步理念。1.3、浏览器的事件循环(EventLoop)。1.4、异步任务的宏任务、微任务。总结:EventLoop究竟是什么,用于解决什么的?一、什么是EventLoop?诚如翻译,eventloop就是事件循环,那么javascript究竟为何要采取这种方式进行事件的捕捉循环呢?这同样的使我们值得思考的一个问题。1.1、javaScript是单线程。首先我们必须要知道为什么javasc原创 2021-07-12 10:14:19 · 1872 阅读 · 13 评论 -
在js文件中使用Vue.extend与new Vue().$mount 实现挂载vue文件?
Vue.extend( options )参数:{Object} options用法:使用基础 Vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象。data 选项是特例,需要注意 - 在 Vue.extend() 中它必须是函数原创 2021-05-25 10:57:55 · 4194 阅读 · 18 评论 -
element必填校验 输入空格问题,修改正则表达式、请求拦截器,实现所有输入框去除首尾空格
文章目录一、element-ui,必填校验输入空格是可以通过校验的?二、解决方案?v-model.trim修饰符?三、采用pattern,手写正则的方式实现功能功能。四、请求拦截器过滤所有的请求参数,对应的参数首尾空格全部去掉。一、element-ui,必填校验输入空格是可以通过校验的?我们可以看一下elemen-ui的源码,我们可以看到其实element-ui对应el-form-item关于必填校验的部分是采用了rules,rules.length去进行的校验 我们需要知道的是其实空格也同样原创 2021-05-14 10:27:10 · 11689 阅读 · 26 评论 -
Vue中如何正确的使用jsx语法书写代码
文章目录一、首要了解vue的render函数?1、什么是虚拟dom?2、如何在render中使用jsx语法进行书写?3、写法示例二、案例编写一、首要了解vue的render函数?我们得知道有些特定的场景下 我们是需要去用到render函数去渲染vue模板的,那么何种场景呢?在这里我可以找两个例子当然我们也可一看一下element的源码 package.json中是否存在这两个依赖以下是官网采用的两个依赖(其实两者是一样的 只不过由于版本问题)当然这两个依赖也同样是我们在vue中书写js原创 2021-05-06 10:36:29 · 4682 阅读 · 5 评论 -
跳转页面下载文件需要附带Token请求头,如何实现ajax下载?
downExcel() { var xhr = new XMLHttpRequest() xhr.open('get', '下载路径', true) xhr.setRequestHeader('Authorization', 'Bearer ' + getToken()) xhr.responseType = 'blob' // 返回类型blob blob 存储着大量的二进制数据 xhr.onload = function() { ...原创 2021-04-01 16:47:17 · 3153 阅读 · 2 评论 -
解决Css动画设置无效
从iconfont拉取下来的图标标签 使用 <i></i>class方式不起效果因为i标签是行内标签所以我们要将其 display:inline-block; 转为行内块标签,或者块及标签即可原创 2021-03-19 14:16:08 · 3391 阅读 · 0 评论 -
JS 原生事件绑定,Vue路由变换,事件再次绑定,导致事件绑定两次,无法销毁给单个节点绑定的scroll事件。
文章目录一、绑定事件的两种方式二、主要思考的问题如下:三、采用on事件绑定解决问题:一、绑定事件的两种方式addEventListener : js原生事件绑定,累加式绑定,可以给一个元素绑定多个相同事件。on:js事件绑定,替换式绑定,使用 on 的方式绑定事件,一种事件只能绑定一次,绑定多个相同事件,后面的事件会覆盖前面的事件。二、主要思考的问题如下:vue当中,如果我们去在onMounted中去采用dom节点的方式去绑定了一个事件,那么我们需不需要在页面销毁时去将这个绑定的事件销毁呢?从逻原创 2021-02-27 13:53:01 · 2446 阅读 · 1 评论 -
vue引入图片报错?VueCli 关于静态资源(图片) 引入问题
文章目录一、关于Vue-Cli图片引入问题?二、两种引入方式三、相对路径动态时如何使用?四、背景图片background-image如何渲染?一、关于Vue-Cli图片引入问题?首先我们要清楚Vue-cli是基于Webpack来进行的打包,其次我们再来看一下Vue-cli的官网是如何给出我们的打包引入图片方式的。二、两种引入方式简单的来说一种是相对引入方式,一种是绝对引入方式相对引入: <img src="../assets/logo.png" alt="" />原创 2021-02-24 13:53:28 · 19377 阅读 · 6 评论 -
前端如何封装一个组件?怎么造轮子?手写js封装一个dialog弹窗组件。
文章目录一、现在要你完成一个Dialog组件,说说你设计的思路?它应该有什么功能?大体功能二、文档结构三、样式Css文件四、模拟调用场景index.html文件五、dialog弹窗js组件最终效果一、现在要你完成一个Dialog组件,说说你设计的思路?它应该有什么功能?以前没有尝试过封装组件,其实也没有严格意义的去笼统的学习过封装组件,最近使用layui满频繁的,想要封装一个dialog,尝试一下自己去动手封装一个组件,锻炼一下自己的动手能力,当然在这里也是分享给大家。回到上方我们其实可以回想一下原创 2021-01-07 14:55:26 · 7875 阅读 · 36 评论 -
前端代码连续点击多次按钮,导致数据提交多次,导致后端幂等,解决方案(全局 每次前端请求设置Loading加载效果,请求完成后,关闭Loading加载)
文章目录1、文章开篇:什么是幂等?1、文章开篇:什么是幂等?幂等(idempotent、idempotence)是一个数学与计算机学概念,常见于抽象代数中。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。例如,“setTrue()”函数就是一个幂等函数,无论多次执行,其结果都是一样的.更复杂的操作幂等保证是利用唯一交易号(流水号)实现。原创 2020-12-30 11:21:31 · 6889 阅读 · 0 评论 -
vue-Cli3,Vue-Cli4打包后如何配置静态资源路径?(自定义浏览器icon图标,title文本)
文章目录为什么要配置静态资源路径?1、首先我们要清楚什么样的环境下我们需要配置静态资源路径?2、如何配置?为什么要配置静态资源路径?1、首先我们要清楚什么样的环境下我们需要配置静态资源路径?那肯定是不是单纯的一个前端写的单页面应用的时候,我们仔细想想,如果我们开发了一个新模块,但是不是基于原来项目开发的,而实更换了一个路径?不不不,只是说新起了一个子路径,相当于二级路径,那么这个时候我们还能用原来的默认的配置去寻找接口地址,静态资源地址吗?当然这样肯定是行不通的,所以说我们需要配置一下你当前这个模块原创 2020-12-28 17:23:18 · 3312 阅读 · 0 评论 -
Vue实例$options调用没有定义在data,methods中的属性和方法
export default { name:'Demo', text:'我爱他轰轰烈烈最疯狂', app1(num){ return '外部方法:'+num }, data() { return { gFather: '祖先', form: { inp1: '123', obj: { inp2: '123', }, }, } }, created() {原创 2020-12-22 16:38:45 · 1371 阅读 · 0 评论 -
Vue input文本框v-model与ref.value不能同时使用赋值,如何实现操作节点方式赋值?
我们开发时有是会遇到这样一个场景,点击某一个文本框,蹦出弹窗,里面是一系列的表格,勾选表格项,将其指定的内容赋值到对应的我们点击的那个文本框上。如下 需求现在有两个文本框,当我们点击时让其蹦出弹窗,内容123变成abc。我们可以看到,两个对应的v-model值已经绑定到了对应的文本框上面。 methods: { proup(dom) { let vm = this // Dialog是vant的弹窗 Dialog.alert({ t原创 2020-12-21 18:54:16 · 4627 阅读 · 1 评论 -
vue如何实现组件传值?掌握provide、inject此种传值方式代表你就已经是一位大佬了!
vue常见的传值方式有很多?大体的我们可以分为以下几种传值方式父子组件传值:props ,$emit。兄弟组件传值:eventBus公交车机制。上方是最为常用的三种传值方式但是你以为传值方式只有那么多?并不是通过Session Storage缓存、Local Storage缓存。// 父组件const s = { name: '小明', age: 18 }sessionStorage.setItem('缓存名称', JSON.stringify(orderData))// 子组件c原创 2020-12-11 09:43:44 · 1144 阅读 · 1 评论 -
数据库返回数据很多,如何渲染很多条数据页面不卡顿?
在这里的话我们采用的是两个apicreateDocumentFragment() :createdocumentfragment()方法创建了一虚拟的节点对象,节点对象包含所有属性和方法。注意如果我们向这个虚拟节点中插入数据是不损耗性能的requestAnimationFrame() :【1】requestAnimationFrame会把每一帧中的所有DOM操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率【2】在隐藏或不可见的元素中,requestAnima原创 2020-12-03 10:11:03 · 827 阅读 · 0 评论 -
配置VSCode、谷歌浏览器插件 文件保存后,浏览器页面自动刷新
开发时我们不免会遇到一些Bug,而当我们进行修复时,如果是老项目的话,难免不了的就是频繁的切换页面与编译器,保存一次代码刷新一次页面,这样不免是繁琐的,那么这个时候两款插件应运而生一、VsCode安装LiveReload下载后我们需要配置一下首先,其实配置与否都可以ctrl + shift + p键入 LiveReload 选择上面这个选择项即可二、谷歌应用商城安装LiveReload这个时候安装成功后我们的右上角会蹦出一系列选项,让其显示在右上角右键单击管理扩展程序让其访问文件原创 2020-11-24 13:37:50 · 3185 阅读 · 1 评论 -
撤销git已经推送的远程版本,回退版本
Git远程仓库版本回退1、撤销时,请确保你在当前需要撤销的分支上,因为推错了了的可能性就是因为,分支推送错误git checkout 切换分支名 origin/远程分支名 //这样的话对应远程分支也会绑定2、当分支切换后、我们就可以查看往期我们推送的git commit版本git log按住上下我们可以查看往期版本,这个时候我们找到我们推送错误的上一行commit码 下方都是有commit-m‘ ’当时写的说明的3、获取log版本号之后,我们使用git 命令切换到对应的commit版本原创 2020-11-11 09:47:15 · 1148 阅读 · 0 评论 -
同一局域网下 实现手机网页与桌面端代码联调
首先我们要知道的是,在同一ip局域网下,我们的主机与主机之间是可以相互访问的那么我们应该如何实现从电脑上面写代码,手机真机看页面呢?1、关掉电脑端的防火墙首先我们搜索防火墙,如果你没有配置过打开之后应该是这样一个状态点进去关关关,三个全部关掉这个时候,第一步就已经完成了。2、开启我们的vue项目(我这边使用的是vue,如果想其他的话可能是默认打开localhost,或者手动打开localhost、127.0.0.1,这时我们就要查看一下我们的ip局域网地址)这是我们vue启动的项目,默原创 2020-11-10 11:26:53 · 1084 阅读 · 0 评论 -
js更改input文本框的value值,无法触发input的onChange,onInput事件,解决方案
在文章的开头,我们需要了解一下change: 当元素的值发生改变、文本框失去焦点(无法实时更新)会触发 change 事件。input: 当文本框的值发生改变、存在焦点时(实时更新),会触发 input事件。那么什么样的环境会触发我们的标题行为呢?<input id='inp'/><script>var inp = document.getElementById('inp')// 首先要了解的是 此时变更value值是无法触发change和input事件的i原创 2020-10-29 10:31:03 · 9059 阅读 · 1 评论