- 博客(16)
- 问答 (1)
- 收藏
- 关注
原创 windows 下用docker 部署nginx
四、访问http://localhost页面。简单版本记录,详细内容后续再写。一、拉取nginx镜像,运行。
2025-03-13 17:18:26
284
原创 用canvas中的getImageData方法获取像素点数据
getImageData作用: 用来获取canvas画布上指定矩形区域的像素数据;参数:参数含义x矩形的左顶点横坐标y矩形的左顶点纵坐标width矩形的宽度height矩形的高度返回值: 返回的是一个ImageData对象,该对象包含了三个只读属性:属性含义ImageData.widthImageData的宽度,用像...
2019-12-18 17:45:52
19055
原创 Linux下安装html-pdf报“PhantomJS not found on PATH”错误的解决办法
问题场景:使用html-pdf将html转换pdf文件,html-pdf依赖于phantomjs-prebuilt。phantomjs-prebuilt是用来安装PhantomJS的npm 安装器,安装html-pdf时会自动安装该依赖。然而,安装html-pdf插件的时候遇到了phantomjs-prebuilt装不上的问题:[root@localhost PROJECTSERVIC...
2019-12-17 17:09:33
1714
原创 React源码解析笔记---调度更新(二)
scheduleWorkexport function scheduleUpdateOnFiber( fiber: Fiber, expirationTime: ExpirationTime,) { // 判断有没有嵌套更新 checkForNestedUpdates(); warnAboutInvalidUpdatesOnClassComponentsInDEV(fibe...
2019-07-19 23:36:17
945
原创 React源码解析笔记---ReactDOM.render
import ReactDOM from 'react-dom';ReactDOM.render(<App />, document.getElementById('root));源码:这里只摘录了核心代码const ReactDOM: Object = { ... render( element: React$Element<any>, // ...
2019-07-15 21:48:54
735
原创 React源码解析笔记---调度更新(一)
流程:ReactDom.render => legacyRenderSubtreeIntoContainer (1. 创建root;2. …;3. 调度更新)调度更新unbatchedUpdates源码:...// 这里“相当于”执行了unbatchedUpdates的回调函数// 判断parentComponent是否为null, 然后分别调用root原型上的不同方法,// 这...
2019-07-15 21:42:54
738
原创 React源码解析笔记---React.Children
v16.8.6React.Children.mapmapChildrenfunction mapChildren(children, func, context) { if (children == null) { return children; } const result = []; mapIntoWithKeyPrefixInternal(children, ...
2019-07-09 14:08:05
235
原创 三种简单的排序方法js实现
一、冒泡排序冒泡排序规则冒泡排序是最慢的排序算法之一,之所以叫冒泡排序是因为它会依次(假设这里是正序)遍历数据,并两两比较相邻数据,并按照升序(或降序)将较大(或小)的数据往右移动,这样最大(或最小)的数据就会像气泡一样慢慢浮动到顶端。假如这里有一组降序排序的数据 5,4,3,2,1,想要将它按升序排序,用冒泡排序的过程如下图:冒泡排序的代码实现:function bubbleSort(...
2019-04-15 16:08:53
931
原创 图的深度优先搜索与广度优先搜索---js
参考书籍:《数据结构与算法JavaScript描述》1. 图图由边的集合以及顶点的集合组成。例如游戏中的地图,上面含有路线以及地点。地点就可以看作是顶点,路线看作是边。边将顶点连接起来,构成一条条路径。2. 构建图function Graph(v) { this.vertices = v; // 顶点个数 this.edges = 0; // 边的条数 this.vertices...
2019-03-21 15:18:48
264
原创 generator函数中yield表达式返回值与next参数及其应用
《ECMAScript 6 入门》中提到:遇到yield表达式,就暂停执行后面的操作,并将紧跟在yield后面的那个表达式的值,作为返回的对象的value属性值yield表达式本身没有返回值,或者说总是返回undefined。next方法可以带一个参数,该参数就会被当作上一个yield表达式的返回值。这几句话意思呢?看如下代码:function * gene(a, b) { ...
2018-12-15 21:56:57
1660
原创 为什么React要区分Class和function定义的组件?
React内部是通过调用组件的定义来获取被渲染的节点,而对于不同的组件定义方式,其获取节点的步骤也不一样。如下://function方式定义function Example() { return &amp;lt;div&amp;gt;this is a div&amp;lt;/div&amp;gt;;}const node = Example(props);// 类方式定义class Example exte...
2018-12-14 13:52:40
9170
原创 用commander.js构建自己的脚手架工具
随着前端技术的发展,工程化逐渐成为了一种趋势。但在实际开发时,搭建项目是一件很繁琐的事情,尤其是在对一个框架的用法还不熟悉的时候。于是很多框架都自带一套脚手架工具,在初始化前端项目的时候就可以不用自己从头搭建,只要在命令行输入初始化命令即可。那么,如果想自行开发出这样一个命令行工具来初始化自定义项目,该怎么做呢?研究的过程中,偶然间发现了commander.js这个模块,可以帮助命令行工具...
2018-06-26 16:12:34
8032
2
原创 Webpack笔记(三):管理文件输出与自动构建
一、管理文件输出项目结构:webpack-test |- package.json |- webpack.config.js |- dist |- index.html |- src |- index1.js |- index2.js |- node_modulesindex1.jsexport default function() ...
2018-03-22 17:21:12
634
原创 Webpack笔记(二):使用Loader
Loader 用于将模块的源代码进行转换(预处理)。在import或者加载文件时,通过不同的loader对不同格式的文件进处理,如:将不同语言的文件(如TypeScript)转换为JavaScript、将scss转换为css等等。一、使用官方文档给出三种使用loader的方法:配置:在 webpack.config.js 文件中的module关键字下指定loader 内联:在impo...
2018-03-20 09:47:31
438
原创 使用Node时报Error: spawn *** ENOENT错误原因
一般来说,报 Error: spawn *** ENOENT 错误的原因可总结为:A. spawn方法参数不正确:child_process.spawn(command[, args][, options])@command:要执行的命令@args:参数列表(可选)@options:配置对象(可选)spawn方法使用给定的command命令来产生一个子进程,args为命令行参数,如果省略,则默认...
2018-03-14 17:26:27
73003
2
原创 Webpack笔记(一):安装配置
一、局部安装介绍:全局安装会导致不同项目中的webpack锁定到指定版本,也会导致使用不同webpack版本的项目构建失败,丧失了灵活性,因此推荐局部安装。a. 首先确保安装了Node.js的最新版本。b. 写这篇文章的时候,webpack已经到了4.1.0版本;c. 要安装最新版本或特定版本,请运行以下命令之一:npm install --save-dev webpa...
2018-03-08 17:48:21
244
空空如也
如何用qt调用surfer以及tecplot进行二次开发?
2017-09-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人