自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 wujie初使用--部署篇

新起了项目,决定使用微前端技术,最终框架确定使用wujie。(微前端基础知识和框架对比选取,网上很多例子,不做赘述)根据文档和网上已有资料,很轻易的在本地起来了项目,但是在部署到线上后,出现了问题且在网上没有找到解决的办法,现将遇到的问题和我的解决方法记录如下。主应用和子应用都是vite4 + vue3。

2023-06-10 17:45:54 1768 2

原创 输入框点击出现下拉框。下拉框点击不隐藏下拉框同时出现详情弹窗

需求:实现如下图分析:1.下拉框带搜索,一般情况下使用el-select组件完成,该需求存在的问题是点击选项,不能隐藏下拉框,同时显示详情信息。使用el-select未找到能够实现下拉框不隐藏的方法,因此弃用el-select。2.抛去搜索下拉框,这个样式很符合el-popover的情况。尝试使用el-popover实现过程:方法1初步思路: popover1,template是el-input,内容是一个列表循环出的template为p标签的popover2。popover2的内容就是详情。

2022-04-18 14:23:54 3776 1

原创 vue3 update:modelValue 线上环境报错modelValue is not defined

在使用vue3进行开发子组件显示隐藏时,我们在父组件中给子组件传递v-model:visible来标识子组件的显隐。一般情况,父组件中代码为如下:<Child v-model="drawerVisible" ... />子组件,一般使用el-plus中的drawer或modal等弹出框,以下以el-drawer为例<template> <el-drawer v-model="visible" title="..." directi

2022-03-28 13:50:57 6214 15

原创 go channel的关闭时机和阻塞问题

问题:1.在close(chan)语句后,是否直接关闭了channel。如果不是,channel何时被关闭的;2.读取channel中的值时,若channel中无值,会阻塞后边的语句,那么通过range读取channel中的值,何时会跳出range接着执行结论:1.channel的关闭时机:1)给channel调用close()且其中数据全部被消费结束。2)主线程关闭2.通过range取channel中的值,如果channel一直未被关闭,则range会一直阻塞后续代码执行。只有channel被关闭,

2021-12-16 11:15:21 3218 1

原创 git报错would clobber existing tag

使用vscode自带的git界面操作pull,有可能出现关于tag的错误would clobber existing tag,导致无法pull解决方案:1.在terminal直接输入git pull,完成代码拉取。代码虽然拉取了,但vscode的git工具还是不能用2.在terminal输入git fetch --tags -f,先完成对本地代码tag的强制更新。再使用vscode的git工具拉取代码...

2021-12-14 16:30:58 7873

原创 VueDraggable 子元素input选中文字会出现拖动

vuedraggable,el-input

2021-12-09 15:54:23 1461 5

原创 python3合并excel表格简述

需求:多个excel表格,表头相同,表格内容不同。将多个合并成一个表格。系统:macOS 11版本:python3.9代码:import pandas as pdimport os#文件路径file_dir = r'/Users/xxx/Desktop/合并excel代码'#构建新的表格名称new_filename = file_dir + '/new_file.xlsx'#找到文件路径下的所有表格名称,返回列表file_list = os.listdir(file_dir)

2021-04-30 03:29:59 530

原创 vue-router3.0 报warning无法匹配路由

使用this.$router.push({ name: ‘xxx’ }),xxx为路由的name值,达到跳转页面的目的,vue-router报错如下:missing param for named route “xxx”: Expected “0” to be defined解决如下:this.$router.push({ name: 'xxx', params: { '0': 'xxx' }})虽然解决了,但是完全不知道为何发生,又为何结束...

2020-11-26 16:05:45 2388 4

原创 Bootstrap fileinput插件删除未上传文件的坑

个人比较看好的中文文档:http://bootstrap-fileinput.com/options.html背景上传文件或图片,判断名称是否符合规则、不可重名。初期实现思路全局定义变量filenames,存储已上传文件名。在filebatchselected事件回调函数中,获得选中文件的文件名,判断是否在filenames中(判断命名规则),若无可选中,名称添加至filenames中。若有,选中.kv-file-remove(按钮的类名),点击事件,删除。调用删除回调函数filesuccessr

2020-07-14 13:39:00 1172

原创 单点登录逻辑简单梳理

目的:为解决现在各种服务越来越多,若不使用单点登录,则需要用户登录每个服务,即多次登录,体验很差。单点登录是用户只需要登录一次,就相当于登录了所有服务。之前以为cas + uim、cas + shiro、 jwt等都是实现单点登录的常见组合。后来发现,cas是中央认证服务,负责用户管理,为单点登录服务。而uim和shiro是用户权限控制的服务。因此若不需要权限控制,只要单点登录,则只需要cas...

2019-11-25 09:49:48 920

原创 css3属性识别文本框行数并处理

需求:当表格单元格内容超过4行时,隐藏多余部分并显示展开按钮。不超过4行的,正常显示且不显示展开按钮。背景:使用dva相关技术栈 + jquery + css3 + antD分析:刚接到这个需求的时候,由于对css3属性了解的不够透彻,并未直接想到使用css3的webkit-line-clamp属性。最开始想的是由于单元格宽度不固定,且中文、英文、数字和符号等宽度不同,也无法使用string...

2019-07-21 14:02:18 1702

转载 防抖和节流参考

https://www.jianshu.com/p/c8b86b09daf0很有帮助

2019-06-26 17:42:50 142

原创 js深拷贝注意事项

1.使用Object.assign(newObj, oldObj);只深拷贝了oldObj的第一层,之后的层级仍是浅拷贝。如:oldObj = {a:1, b: 2}; 此时深拷贝没问题如:oldObj = {a:1, b: { c: 4 }}; 此时newObj.a和newObj.b都不会影响oldObj,但newObj.b.c则会影响oldObj。2.使用“…”扩展运算符,细节同上3...

2019-06-26 17:07:45 613

原创 使用postMessage方法完成跨域页面通信

背景:本项目A中的用户管理打开另一个系统B的用户管理页面,需要传递用户信息。问题:1.需要传递用户相关信息,所以不能通过url传递参数,存在安全风险;2.两个系统,跨域,无法单纯使用sessionStorage或localStorage方案:1.使用iframe + postMessage;2.使用postMessage方案一:1.A页面中加入iframe,链接为B...

2019-03-22 14:22:31 723

原创 获取某天前几天的方法

function getBeforeDate() { let data = []; let date = new Date(); let year = date.getFullYear(); let month = date.getMonth() + 1; let today = date.getDate(); let lastMonthdays = new Date(year, mo...

2018-12-26 15:36:03 534

原创 echarts中热力图和日历组件的结合

echarts中热力图和日历组件的结合function getVirtulData(year, month) { //随机生成月份的值 var date = +echarts.number.parseDate(year + '-' + month + '-01'); var end = +echarts.number.parseDate(year + '-' + (month+1) + '-...

2018-11-17 15:59:47 1957

原创 echarts中xAxis的type=‘time’

当type=time时,x轴不需要再另外设置data。只需要再series中的data设为二维数组,每个元素是时间戳和值。此时x轴会自定刻度间隔,需要自定义的话,使用splitNumber属性如想获取当前时间前24小时,每隔半小时显示一个随机数。把下面获得的data赋值给series中的data属性即可伪代码:let a = [];let now = Date.parse(new Da...

2018-11-15 17:33:24 13269 1

原创 svg在firefox和safari或chrome中的显示差异

&lt;svg xmlns="http://www.w3.org/2000/svg"width="300" height="100" viewBox="0 0 300 100" style="padding-left: 20px !important"&gt;&lt;text x="-15" y="30" style="fo

2018-11-15 17:20:51 2891

原创 react16 各类控件ref取值方式

input:this.myref.current.input.valueselect: this.myref.current.rcSelect.selectionRef.textContentradio: this.myref.current.state.valuetextarea: this.myref.current.textAreaRef.value

2018-09-17 16:27:09 2044 2

原创 react引入d3相关问题

1. 开源的d3例子有一些是用了V3的,在V4后更改了一些api问题:react直接npm install –save d3,安装的是最新版,目前是V5,api的更改导致功能无法实现。 目前遇到的更改了的api是d3.layout, d3.svg。layout和svg其中的所有方法都失效,比如d3.layout.tree,d3.svg.diagonal。 解决:安装V3...

2018-08-13 19:27:59 3779 2

原创 echarts柱状图x轴label简写显示全

具体要解决的问题见上图。本文只讲述要用的的配置项和思路。具体细节不多描述 注:。。。代表和本文无关app.title = '坐标轴刻度与标签对齐';option = { color: ['#3398DB'], tooltip : {。。。 }, grid: {。。。 }, xAxis : [ { type :...

2018-07-12 13:28:13 2723

原创 setInterval的弊端和解决方案

在需要重复发送请求或者某些效果的时候,一般都会想到使用setInterval,但是它的一些弊端,会给程序带来很大的隐患一、弊端 1.setInterval对自己调用的代码是否报错漠不关心。即使调用的代码报错了,它依然会持续的调用下去 2.setInterval无视网络延迟。在使用ajax轮询服务器是否有新数据时,必定会有一些人会使用setInterval,然而无论网络状况如何,它都会去一遍...

2018-07-03 16:20:26 23216 4

原创 react-router4.0之后路由定义的改变

在4.0版本之前,路由的定义是在src/router.js中定义嵌套路由。代码如下:&amp;lt;Router history={history}&amp;gt; &amp;lt;Route path=&quot;/&quot; component={IndexPage} &amp;gt; &amp;lt;Route path='/a' component={a} /&amp;gt;

2018-06-13 11:38:25 1418

原创 敏捷开发总结

一、敏捷开发是一种开发方式 敏捷开发,英文是Agile Development,是一种以人为核心、迭代、循序渐进的开发方式,是一种软件开发的流程。它会指导开发人员用规定的环节去一步一步完成项目的开发。由于它采用迭代式开发,所以它主要的驱动核心是人,而不是像瀑布模型那样,以文档为核心。 敏捷开发更注重的人与人之间的沟通、交流。它认为个体和交互胜过过程和工具,可以工作的软件胜过...

2018-05-24 11:20:45 1267

原创 git命令

git记录的是每一次对文件的修改,而不是每个文件 1.git回退至上次的commit: 首先用git log查看提交日志,从近至远的,详细的显示 每次提交成一行显示:git log –pretty=oneline git log –graph 图表方式显示log -p 按补丁格式显示每个更新之间的差异。 –stat 显示每次更新的文件修改统计信息。 –shortstat 只显示 –s...

2018-05-21 15:49:59 236

原创 angular react vue优缺点对比

今天分享的内容是前端3大框架,主要有介绍前端的发展历程,框架出现的原因和介绍angular、react和vue各自的优缺点,让大家能够对这3个框架有一个大致的了解。 首先介绍一下前端技术的发展 1994年可以看作是前端历史的一个起点,在这一年的10月13日,网景公司推出了第一版的navigator,这一年tim创建了w3c,他的好基友发布了css,还是这一年,php诞生。 navigator...

2018-04-27 10:06:31 5120

原创 teamviewer13安装个人免费版

正常安装teamviewer时如果安装选择了商业用途,会需要买许可证,试用期只有7天。 解决办法,卸载原先安装的tw,删除掉所有有关文件夹,比如C盘中的program(x86)和用户文件夹中的appdata文件夹中。 然后更改本机mac地址,打开网络共享中心,选择配置(就是准备改ip地址的那个窗口)—&gt;高级—&gt;本地管理地址—&gt;在值那一项随便填一个,比如:00112233445...

2018-04-24 13:57:20 14380

原创 nz-input-number最大值和最小值相同后控件死掉的解决

angular4使用ng-zorro中的nz-input-number组件时,有时需要将最大值(nzMax)设置为后台返回的数据。 如果返回的数据和设置的最小值(nzMin)相同时,即nzMax和nzMin相同时,控件就会死掉,即使再改变nzMax,控件也无法再通过自带的按钮去增加或减小数值。 解决办法: 判断返回值,当返回值和最小值相同时,就*ngIf掉此控件,重新设置最小值,使两...

2018-03-29 19:22:42 2772 1

原创 angularJS中ng-options的使用

在angularJS中创建下拉框有两种方式,第一种是使用select标签,然后在option标签中用ng-repeat属性来循环要显示的选项。&lt;select ng-model=''&gt; &lt;option ng-repeat='item in XXX'&gt;{{item}}&lt;/option&gt;&lt;/select&gt;第二种就是使用ng-optio...

2018-03-22 17:51:37 437

原创 vscode使用git管理代码

visual studio code(以下简称vscode)集成了Git管理,但是在网络上找了很多资料,只有如何创建本地环境的介绍而没有如何使用,这对我刚接触Git时造成了很大困扰,也弄崩了公司git上的一个分支,幸好时分支。。。 下面简述几点在vscode上使用git的方法(我是前端) 1. 第一次使用git管理代码的时候,从远端拉去代码到本地,由于node_modules和bower_co...

2018-03-20 10:46:36 13868 3

原创 input代替下拉框设置只读无法调用change事件的解决

在使用input标签代替select实现下拉框功能时,有时要禁止input的输入功能,只能选择下拉框中选项,选择后进行判断是否有值进入。 正常思路是选择选项后,使用change事件,但是使用readonly将input变为只读后,change事件会失效。 解决办法: 选择选项后使input失去焦点(也不能输入,失去焦点也没有影响),使用blur事件,在blur中编写相应的逻辑代码。注...

2018-03-16 19:10:07 2166

原创 win10权限混乱导致npm安装失败的解决

因为瞎折腾,导致win10系统的权限混乱,再使用npm进行包全局安装的时候,会提示错误 有一种解决办法是: 用管理员身份打开cmd。 这种方式可以安装,但是在日常使用的时候或者要在IDE终端进行使用命令的时候,依然会有错误(和没安装提示的错误一样)查了不少资料后,终于找到一种,亲测有效: 在管理员CMD下运行:npm config set prefix "C:\...

2018-03-09 18:39:04 8033

原创 阿里大于实现短信验证码node.js(最新版)

阿里大于账号的申请和短信签名、短信模板的申请,在此不再赘述。 本文主要介绍的是在nodejs上的代码实现。 要点:安装npm包SDK的引用验证码生成后和前端的匹配验证码格式1.除了正常开发需要安装的npm包之外,关于阿里大于的只需要安装一个,原因是阿里大于和阿里云合并了$ npm install --save @alicloud/sms-sdk2.首先是sdk的引用,...

2018-02-12 12:19:05 1177

原创 vue同级组件通信(只用vue)

vue组件通信,有父子组件通信和同级组件通信两种。在有vuex的时候,可以很轻易的通过全局的$store来进行中转,若只用vue自身进行同级通信。 例子中是ap1显示me1信息,在ap2中用按钮改变ap1中的值。创建app一个vue实例作为中转在ap2中点击按钮,用app.$emit触发app实例的一个方法,并传值。在ap1中的created阶段,用app.$on 来接收app自定义事

2018-02-07 13:28:32 1682

原创 vue开发SPA在ios10上的bug

前端早读课公众号,2018年2月7日内容,认为其很有意义,记录于此用vue框架开发的SPA在所有的环境下都可以正常显示,除了在ios10的手机上跑不起来,无论是微信浏览器还是Safari浏览器,都只能看到一个白白的屏幕。手机连接电脑后,在电脑端的Safari里,报错如下: SyntaxError: Cannot declare a let variable twice: ‘e’.

2018-02-07 12:31:48 6768 7

原创 toutiao部分面试题

for in 和 for of 的区别 for in 返回的是数组元素的索引值或者对象的key 会遍历出所有可枚举的属性,包括原型链上的。 for of 返回的是数组元素,不能遍历对象。也不包括原型链上的 Object.key() 遍历对象返回对象的key,不包括原型链上的同域跨标签通信 用window.localStorage属性,因为它可以储存的东西更多,比cookie更方便,且关

2018-02-04 19:21:36 230

原创 快速排序

var arr = [23,24523,423,41,523,233,552];function q(arr){ if(arr.length1) return arr; var s = arr[0]; var big = []; var small = []; for(var i=0;ilength;i++){ if(arr[i]>s){

2018-01-30 16:54:47 219

原创 Vue中render中的h箭头函数

vue2.0新增了render方法,官方案例写的是:render: h=>h(app)其中h是由createElement方法演变而来render: function(createElement){ return createElement(app)}用es6的写法就是:(只有一个个return语句,可以省略return和{})render: createEl

2018-01-18 15:00:07 3192

原创 css中li下边框盖住ul下边框问题

在用ul标签做tab栏时,想实现ul一个底边框线是统一的颜色,在当前li上,要给li一个其他颜色的底边框线,盖住ul的底边框线。实现以下效果 灰线是ul的线,红线是li的线。我发现无论如何写,li的高度加上边框线的高度都会把ul高度撑开,始终都会露出ul的线。 灵机一动,把ul放在一个div盒子中,给div设置底边框线,再设置一个合适的高度,而不给ul设置。 完美解决

2018-01-16 13:40:22 4686

原创 vue-lazyload使用图片路径的坑!!

使用vue-cli脚手架快速生成的框架中, src**同级目录**中有static文件夹 src**子文件夹**中有assets文件夹 在使用vue-lazyload,设置error或loading属性的图片路径时,图片在assets文件夹,就需要使用require()进行引入。Vue.use(VueLazyload, { preLoad: 1.3, loading:

2018-01-13 16:34:15 8157 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除