自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JavaScript数组有map方法,你知道shell怎么实现吗?

函数在JavaScript里面作为一等公民,作为参数那是简简单单,传入就能调用。但是程序报错,告诉我fn is not a function,我就知道fn作为参数传入没办法这么简单调用。但是最近遇到一个问题,处理对象数组的时候,需要用各种处理方法去转换数据结构。很容易就想用JavaScript的数组处理方法,我直接arr.map不香吗?不需要声明变量、甚至函数不需要声明参数,给我的感觉就是突出一个随意。然后又找,shell 传入函数作为参数,出来的是。shell 里面数组取值的方法?

2022-11-22 16:47:21 469 1

原创 chrome浏览器插件热更新vite实战

浏览器插件的开发在代码编写完之后需要扔到浏览器扩展应用里面才可以看到效果,并且在代码变更之后是需要手动刷新,这时候我们就没有webpack工具来给我们提供热更新的支持。热更新,又名模块热替换:Hot Module Replacement,简称HMR,无需完全刷新整个页面的同时,更新模块。HMR主要用于提升开发体验。设置好了之后,我们在vite开发的时候使用watch模式,当代码变化之后重新打包会触发页面的更新。我在尝试用vite开发浏览器插件的时候,就在思考,我们可以通过热更新一样的原理去帮插件自动更新。

2022-11-18 11:31:33 1180

原创 umi项目本地开发环境远程打开的问题

脚本执行的时候是在node环境,而非浏览器环境,此时拿不到location的信息。我打开的是10.0.25.102的地址,所以来源不可能是location,但是主应用的socket连接是从location获取的。根源因该是umi配置webpack socket连接的地方,没有提供只 设置 端口的自由度。而devScript的脚本请求是由 umi 配置的webpack 热更新模块加载引起的。这里可以找到 process.env.SOCKET_SERVER 这个变量赋值的地方。找到 umijs 插件源码。

2022-11-16 14:38:11 1019

原创 【微前端开发环境下,加载远程子应用的实战。】

所有微前端应用是通过监听url变化动态加载资源的做法将 代码引入到 当前页面。一开始我们的本地开发运行的环境,如果没有启动子应用的话。对应的页面是白屏的。开发模式下,我们的本地环境会通过本机ip+端口号提供微前端应用的页面资源,只需要在加载子应用的入口处做一层 逻辑处理 理论上可以实现加载远程子应用。现在的问题是,如何判断 哪些子应用需要从远程加载,哪些子应用从本地加载。而线上环境其实也是会提供各个微前端应用的页面资源。到目前,我们已经实现了 加载远程 子应用。注意:远程子应用依赖的js也需要做代理。

2022-11-15 14:51:42 596

原创 如何搭建一个好看的github主页

GitHub有一个彩蛋,就是跟用户同名的仓库里面的README文件会显示在主页。通过这个README文件,我们就可以构造出个性化的GitHub个人主页。在逛GitHub社区的时候发现别人的主页丰富多彩,肯定是,我也要!把代码里面的username=xxx换成自己的用户名就可以了。当然README文件可以随心所欲修改自己的GitHub主页了~clone下来这个仓库。然后编辑README文件。还有一些皮肤效果和一些参数可以调整。创建一个跟自己同名的仓库。

2022-11-14 14:36:38 671

原创 浅谈session、cookie

然后在返回http请求时,将浏览器对应网址和端口cookie添加一个 假设key是‘X-Session-Id’,value为编码过后的sessionId。这里着重讲一下我对session整个过程的理解。关于session和cookie的概念在社区已经有很多文章阐述了,有很多写得很好,也有很多写得很模糊的地方。本着丰富社区,尽量提供高质量的原则,我想分享一下我在实践session过程中对session的理解。如果存在,则将根据数据库存储的sessionId对应的userId来识别该请求是哪个用户发送的。

2022-11-11 10:00:09 504

原创 git原来还可以这么用?你不知道的自定义命令

例如: git config --global alias.pushopen '!bash git-open.sh'git pushopen 时则会自动在命令行打印出最新提交的commit链接。保存后执行 git clear 就可以自动删除 fixbug 相关的分支了。编写另一个自定义提交的shell脚本(git-clear.sh)当使用的命令行工具不是git的时候,添加!通过设置git alias来创建自定义命令。创建 shell 脚本文件。创建~/bin文件夹。

2022-11-10 10:21:31 385

原创 数据结构与算法指北

最近在看数据结构与算法之美,结合刷题。留点经验书方便以后复习。### 1. 数组**数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。**连续的空间和相同类型的数据的限制使得数组支持:随机访问的特性。根据下标随机访问的时间复杂度为O(1)。 为什么数组都下标从0开始而不是1? `从数组存储的内存模型上来看,“下标”最确切的定义应该是“偏移(offset)”。前面也讲到,如果用a来表示数组的首地址,a[0]就是偏移为0的位置,也就是首地址,a[k]..

2021-11-04 14:31:19 93

原创 微前端框架 qiankun 源码解读 1.3 hijackers/动态加载标签

import { execScripts } from 'import-html-entry';import { isFunction } from 'lodash';import { checkActivityFunctions } from 'single-spa';import { Freer } from '../interfaces';const styledComponen...

2019-12-25 17:23:32 2423 2

原创 微前端框架 qiankun 源码解读 1.2 hijackers/historyListener

import { isFunction, noop } from 'lodash';export default function hijack() { let rawHistoryListen = (_: any) => noop; const historyListeners: Array<typeof noop> = []; const historyUn...

2019-12-25 16:49:20 457

原创 微前端框架qiankun源码解读 -1.1 hijackers/windowListener

直接上代码:import { noop } from 'lodash';const rawAddEventListener = window.addEventListener;const rawRemoveEventListener = window.removeEventListener;这里先保存window的添加和移除监听的函数。export default func...

2019-12-25 16:31:03 909

原创 React使用hook(useState)的一些坑

import someFnComponent from './someFnComponent'const [fnComponent, setFnComponent] = useState();setFnComponent(someFnComponent )//此时引入的函数组件props会失效。当引用时组件的props一直会是undefined。const myFnCom = ...

2019-11-28 15:16:10 12544 1

原创 阿里前端笔试算法题。做个记录。

我笔试的时候并没有写出来。有点懵,题目看了好久。开始写的时候一开始思路也没正确打开。笔试完了,安静思考了一会儿就解决了。如果不正,欢迎指出。交卷的时候截图的,所有一个图层。见谅~code如下: function solve(arr){ let newArr = [] for(let i = 0;i&lt...

2019-04-10 21:30:31 1925 1

原创 vue里面使用全局变量的问题

在vue组件中引入外部的js文件中定义的obj对象。如下:下面是外部js文件的内容。如果在组件中改变了该对象在另一个组件引用的时候obj也会发生变化,即带上了a的属性。该现象的本质是ES6模块化的本质。引用是动态引用,就是对对象的修改会反映到对象本身上面。...

2019-04-04 16:28:55 958

原创 Vue父子组件实现数据‘双向绑定’的传参方法。(适用多个v-model)

<div class="topLine"> <singler :date.sync="date" :name='"统计周期"'></singler> <singler :name='"变压器"' :devices='devices' v-model='device'></singler></div...

2019-04-02 15:40:37 1479

原创 实现echarts图表滚动,设置自定义滚动条

echarts自带的dataZoom设置后触发的鼠标滚轮滚动事件会放大缩小echarts图表本身,而不是我们想要的图表滚动效果。并且要实现自定义滚动条还是需要自己设置的滚动条用得舒服。通过dataZoom配置项设置很是麻烦。于是想出了通过内嵌高度溢出的图表,外层使用高度固定的div来设置滚动条。&lt;el-scrollbar style="height:235px;"&gt; ...

2019-03-11 09:41:14 20887 2

原创 为elment-ui的el-select选择器添加onblur失焦事件产生的问题

&lt;div class="oneline"&gt; &lt;span &gt;用户编号:&lt;/span&gt; &lt;div class="block left"&gt; &lt;el-select

2019-02-18 18:12:03 22740

原创 使用label修改input的checkbox样式时会发生的问题

&lt;div @click="clickall()" v-show="isEdit" class="checkallwrap"&gt; &lt;input id="checkinput" @click.stop type="checkbox" v-model="checkall"&gt; &lt;label for=&qu

2019-02-18 17:46:41 755

原创 Echarts折现柱状图问题。将X轴设置为24小时显示。

由于echartsX轴type设置为time时 是根据传入data数据的时间戳间隔来自动生成的X轴时间范围。所以只需在X轴上加入一个不显示的24小时时间范围的折线图即可。代码如下methods:{ line(){ var myChart = echarts.init(document.getElementById("main")); // 显示标题,图例和空的坐...

2018-08-02 12:50:44 14751

原创 哲学家就餐问题,linux下实现。

#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include&lt;pthread.h&gt;#include&lt;iostream&gt;#include&lt;unistd.h&gt;#include&lt;semaphore.h&gt;#define N 5#define LEFT i#define RIGHT (i+1)%...

2018-05-21 23:37:42 1624

原创 用python搭建一个简易服务器,获取http请求,并将请求资源封装到响应报文中返回。

import socket #用套接字编程serverPort = 6699bind_ip = "127.0.0.1" #设置端口号和本地ipserver = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server.bind((bind_ip, serverPort))server.listen(5)print 'the s...

2018-05-01 11:05:28 12514 1

空空如也

空空如也

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

TA关注的人

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