node

通过编写简易版本的虚拟DOM,来理解虚拟DOM 的原理

廉价感情. 提交于 2019-12-19 09:37:01
作者:deathmood 译者:前端小智 来源:medium 点赞再看,养成习惯 本文 GitHub https://github.com/qq449245884/xiaozhi 上已经收录,更多往期高赞文章的分类,也整理了很多我的文档,和教程资料。欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 为了保证的可读性,本文采用意译而非直译。 要构建自己的虚拟DOM,需要知道两件事。你甚至不需要深入 React 的源代码或者深入任何其他虚拟DOM实现的源代码,因为它们是如此庞大和复杂——但实际上,虚拟DOM的主要部分只需不到50行代码。 有两个概念: Virtual DOM 是真实DOM的映射 当虚拟 DOM 树中的某些节点改变时,会得到一个新的虚拟树。算法对这两棵树(新树和旧树)进行比较,找出差异,然后只需要在真实的 DOM 上做出相应的改变。 用JS对象模拟DOM树 首先,我们需要以某种方式将 DOM 树存储在内存中。可以使用普通的 JS 对象来做。假设我们有这样一棵树: <ul class=”list”> <li>item 1</li> <li>item 2</li> </ul> 看起来很简单,对吧? 如何用JS对象来表示呢? { type: ‘ul’, props: { ‘class’: ‘list’ }, children: [ { type: ‘li’,

go语言浅析二叉树

自作多情 提交于 2019-12-19 04:47:26
Hello,各位小伙伴大家好,我是小栈君,今天给大家带来的分享是关于关于二叉树相关的知识点,并用go语言实现一个二叉树和对二叉树进行遍历。 我们主要针对二叉树的概念,go实战实现二叉树的前序遍历、中序遍历、后序遍历。 二叉树概念 在计算机科学领域内,二叉树代表的是具有两个节点的树形结构,通常子树被称作为“左子树”,右边的被称作为“右子树”。二叉树通常的应用于实现二叉查找树和二叉堆。 例如上述图片中,我们就制定了一个二叉树,其中d、e、f称作a树的叶子节点。 [叶子结点是离散数学中的概念。一棵树当中没有子结点(即度为0)的结点称为叶子结点,简称“叶子”。 叶子是指出度为0的结点,又称为终端结点] b和c 作为树a的孩子结点,b和a因为作为一个根a的孩子,所以他们的称呼为兄弟结点。其实总结一点就是关于二叉树各个结点的称呼其实和我们在家庭中,对于各个亲戚长辈的称呼类似。 在百度百科中也归纳除了关于二叉树的分类 一棵深度为k,且有2^k-1个结点的二叉树,称为满二叉树。这种树的特点是每一层上的结点数都是最大结点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且或者最后一层是满的,或者是在右边缺少连续若干结点,则此二叉树为完全二叉树。 具有n个结点的完全二叉树的深度为floor(log2n) 1。深度为k的完全二叉树,至少有2k-1个叶子结点,至多有2k-1个结点。

安装nodejs+npm的体验

随声附和 提交于 2019-12-19 03:51:13
NODEJS、NPM安装配置步骤(WINDOWS版本) 1、windows下的NodeJS安装是比较方便的(v0.6.0版本之后,支持windows native),只需要登陆官网( http://nodejs.org/ ),便可以看到首页的“INSTALL”按钮,直接点击就会自动下载安装了。 2、安装过程基本直接“NEXT”就可以了。(windows的安装msi文件在过程中会直接添加path的系统变量,变量值是你的安装路径,例如“C:\Program Files (x86) \nodejs”)。 (注意我是安装的x86,否则我电脑在数入npm -v 的时候会一直等待!!!!!!!) 3、安装完成后可以使用cmd(win+r然后输入cmd进入)测试下是否安装成功。方法:在cmd下输入node -v,出现下图版本提示就是完成了NodeJS的安装。 4、npm的安装。由于新版的NodeJS已经集成了npm,所以之前npm也一并安装好了。同样可以使用cmd命令行输入”npm -v“来测试是否成功安装。如下图,出现版本提示便OK了。 5、常规NodeJS的搭建到现在为止已经完成了,急不及待的话你可以在”cmd“输入”node“进入node开发模式下,输入你的NodeJS第一句:”hello world“ – 输入:console.log(‘hello world’)。 6

ASP.NET Core基础知识-学习笔记

巧了我就是萌 提交于 2019-12-19 03:29:39
ASP.NET Core基础知识 1. 包的安装 ASP.NET Core 服务器端——Nuget 客户端——NPM(使用Node.js安装) 安装完成之后使用 node --version , npm --version 查看版本号 2. 前端工具 npm:package.json 在项目中创建NPM配置文件package.json,并安装以下三个依赖 { "version" : "1.0.0" , "name" : "asp.net" , "private" : true , "devDependencies" : { "bootstrap" : "4.4.1" , "jquery-slim" : "3.0.0" , "popper" : "1.0.1" } } Bundle和minify:bundleConfig.json 首先在wwwroot包下创建两个文件夹,分别为css和js。css文件夹下创建site.css文件,js文件下创建site.js文件。 然后创建bundleConfig.json文件,填入以下内容 [ { "outputFileName" : "wwwroot/css/all.min.css" , "inputFiles" : [ "node_modules/bootstrap/dist/css/bootstrap.css" , "wwwroot/css

postman(八):使用newman来执行postman脚本

倖福魔咒の 提交于 2019-12-19 03:24:00
通过之前的了解,我们知道postman是基于javascript语言编写的,而导出的json格式的postman脚本也无法直接在服务器运行,它需要在newman中执行(可以把newman看做postman脚本的运行环境) 所以要实现在windows的cmd窗口或者linux系统中直接以命令的方式执行脚本,我们需要安装node.js,然后再在此基础上安装newman 了解newman: https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman/ 一.windows下安装 1.安装node.js 到官网下载最新的windows版node.js,直接安装即可(不用自己去配置环境变量,安装完成后会自动配好) (官网下载地址: https://nodejs.org/dist/v10.15.1/node-v10.15.1-linux-x64.tar.xz ) 安装完成后,打开cmd窗口,输入 node -v,如下出现版本号表示安装成功 2.安装newman 可以通过npm来安装newman,npm 是 JavaScript 的包管理工具,并且是 Node.js 平台的默认包管理工具。通过 npm 可以安装、共享、分发代码,管理项目依赖关系。

使用node写爬虫

不想你离开。 提交于 2019-12-19 02:59:01
node爬虫 爬虫介绍 爬取接口 使用 axios 使用与接口类型的爬取 爬取页面 使用 request + cheerio 适用于后端渲染,直接返回 HTML 页面的情况 cheerio 使用方法类似于 jQuery 文档 关于 request 转码问题 const cheerio = require ( 'cheerio' ) const requuest = require ( 'request-promise' ) // 转码问题 let iconv = require ( 'iconv-lite' ) let url = 'http://top.baidu.com/category?c=10&fr=topindex' let options = { url , encoding : null // 告诉 request 不要帮我把 buffer 转成字符串 } request ( options , async ( err , response , body ) => { // console.log(body.toString()) // 默认转 utf8 编码 // 获取返回的编码格式 let ContentType = response . headers [ 'content-type' ] let encoding ; if ( ContentType .

平衡二叉树与AVL树

此生再无相见时 提交于 2019-12-19 02:30:24
平衡二叉树:对于任意一个节点左子树和右子树的高度差不能超过1 二分搜索树容易退化成链表 使用平衡因子转化为平衡二叉树 平衡二叉树的高度和节点数量之间的关系也是O(logn)的 标注节点的高度 平衡因子:左右子树的高度差的绝对值 维护平衡因子 右旋转过程LL //右旋转 private Node rightRotate ( Node y ) { Node x = y . left ; Node T3 = x . right ; x . right = y ; y . left = T3 ; y . height = Math . max ( getHeight ( y . left ) , getHeight ( y . right ) ) + 1 ; x . height = Math . max ( getHeight ( x . left ) , y . height ) + 1 ; return x ; } 左旋转过程RR //左旋转 private Node leftRotate ( Node y ) { Node x = y . right ; Node T2 = x . left ; x . left = y ; y . right = T2 ; y . height = Math . max ( getHeight ( y . left ) , getHeight (

Linux服务器安装node、npm简洁教程

柔情痞子 提交于 2019-12-19 01:16:47
本人使用的是阿里云服务器,操作系统是centOS,下面是安装node教程 1.使用脚本工具连接服务器(可以使用xshell等) 2.输入: wget https://npm.taobao.org/mirrors/node/v10.16.2/ node-v10.16.2-linux-x64.tar.xz 3.xz -d node-v10.16.2-linux-x64.tar.xz 4. tar -xvf node-v10.16.2-linux-x64.tar 5.mv node-v10.16.2-linux-x64 nodejs 6.ln -s /root/nodejs/bin/node /usr/local/bin/node 7.ln -s /root/nodejs/bin/npm /usr/local/bin/npm 完成! PS:nodejs可以从官网下载安装包上传到服务器(使用ftp工具),根据包名从第四步开始即可 如果最后发现node -v还是提示不存在可能是软链接建错了或者以前存在过软链接,删除后重建即可 软链接删除命令 : rm -rf /usr/local/bin/node 来源: CSDN 作者: 年年岁岁花香 链接: https://blog.csdn.net/qq_16597845/article/details/103603937

windows 下面安装npm

南笙酒味 提交于 2019-12-19 00:10:53
npm (简称:Node Packaged Modules)是nodejs官方未nodejs定制的一个工具,是Node.js的包管理器,通过npm可以下载安装nodejs的模块包,nodejs有很多优秀的模块包可以让开发这快速开发。 本方法前提是,电脑安装了nodejs和git两者。没有的话先安装。 nodejs 的安装方法,到node.js 的官方下载node.exe 运行。然后在node.exe 目录下运行CMD命令:node -v 检测是否安装成功。安装成功出现版本号。 以下是安装npm 方法: 打开git命令行,在github中clone下来npm的源码包 git下载地址: git clone --recursive git://github.com/isaacs/npm.git 下载完成后,打开nodejs命令行窗口,进入到npm的代码文件夹下,使用下边命令安装 node cli.js install npm -gf 其中-gf是指全局安装的意思,你可以不要,这样会安装在当前文件夹下,当前工程下而已。 安装完成了npm后,你就可以安装其他想要的nodejs模块了,比如安装express命令行输入: npm install express -gf 其中-gf是指全局安装的意思,你可以不要,这样会安装在当前文件夹下,当前工程下而已。全局安装完成后

使用nvm管理多个不同版本的nodeJS之安装成功nodeJs之后使用npm报错的问题

时光毁灭记忆、已成空白 提交于 2019-12-18 23:19:33
使用nvm安装nodeJS之后,node -v命令可以正常使用,但是npm命令一直报“npm不是内部命令”的错误,深入研究之后得到以下解决方案: 搭建步骤: (1)下载nvm https://github.com/coreybutler/nvm-windows/releases ,从中选一个版本下载解压并且安装。 (2)安装过程: 安装nvm的地址设为:"C:\softtool\nvm",node地址设为:"C:\softtool\nodejs"。这里需要注意地址不能设为"C:\Program Files",安装路径不支持空格,否则node无法使用(网上说的,没有测试)。 以管理员身份打开一个cmd;进行node管理操作。 在命令行输入nvm查看nvm是否安装成功:如下图所示出现nvm版本号说明安装成功。 (3)在nvm安装目录,找到 setting.txt用记事本打开添加如下两行: node_mirror: https://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.org/mirrors/npm/ 添加后如下图所示: 注意: 安装你要的nodejs版本,必须是npm和nodejs都成功,因为有时候会npm或者nodejs不会下载成功,不成功的原因很多,这里建议卸载干净已经安装的nodejs