最近想开个可视化的坑,就看到了 D3 , 别问为什么不选择echarts、Highcharts之类的,老夫写代码就看star数最多的……
D3 的全称是(Data-Driven Documents), D3 将生成可视化的复杂步骤精简到了几个简单的函数,你只需要输入几个简单的数据,就能够转换为各种绚丽的图形。
咋一看d3首页 被其凌乱的文档折服了 差点就完成了就入门到放弃,于是做个学习过程记录,帮助一起入门d3的大家^_^
(译)React是如何区分Class和Function?
原文地址: how-does-react-tell-a-class-from-a-function
本文地址: React是如何区分Class和Function?
边看边翻译 花了2h+… 如果你觉得读起来还算通顺不费事 那也算我为大家做了一点小贡献吧
GitHub精选分享第二期
记录这周值得分享的事,主要是GitHub精选 前端相关~
edex-ui,一个到随处运行的科幻桌面
eDEX-UI 是一个全屏桌面应用程序,类似于科幻电脑界面,
其灵感来自于DEX-UI和TRON Legacy电影特效。
它在真实终端中运行您选择的shell,并显示有关系统的实时信息。
create-react-app教程-源码篇
之前在 create-react-app教程-使用篇 中介绍了create-react-app的基本使用,
为了便于理解一个脚手架脚本是如何运作的,现在来看一下 create-react-app v1.5.2 的源码
入口index.js
create-react-app 一般会作为全局命令,因为便于更新等原因,create-react-app 只会做初始化仓库 执行当前版本命令等操作。
找到 create-react-app
入口index文件:
(转)浏览器的工作原理-现代浏览器幕后
原文地址: How Browsers Work: Behind the scenes of modern web browsers
这是一篇全面介绍 WebKit 和 Gecko 内部操作的入门文章,是以色列开发人员塔利·加希尔大量研究的成果。在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据(请参见资源),并花了很多时间来研读网络浏览器的源代码。她写道:
在 IE 占据 90% 市场份额的年代,我们除了把浏览器当成一个“黑箱”,什么也做不了。但是现在,开放源代码的浏览器拥有了过半的市场份额,因此,是时候来揭开神秘的面纱,一探网络浏览器的内幕了。呃,里面只有数以百万行计的 C++ 代码…
塔利在她的网站上公布了自己的研究成果,但是我们觉得它值得让更多的人来了解,所以我们在此重新整理并公布。
作为一名网络开发人员,学习浏览器的内部工作原理将有助于您作出更明智的决策,并理解那些最佳开发实践的个中缘由。尽管这是一篇相当长的文档,但是我们建议您花些时间来仔细阅读;读完之后,您肯定会觉得所费不虚。
保罗·爱丽诗 (Paul Irish),Chrome 浏览器开发人员事务部
简介
网络浏览器很可能是使用最广的软件。在这篇入门文章中,我将会介绍它们的幕后工作原理。我们会了解到,从您在地址栏输入 google.com 直到您在浏览器屏幕上看到 Google 首页的整个过程中都发生了些什么。
Babel入门教程
大家都知道js十分依赖浏览器(或Node环境),不同浏览器对js的支持不尽相同。现如今ECMAScrip标准的更新已经到了一年一次的节奏,
Babel 就是为了解决这个问题 ,它可以将使用新标准的JavaScript代码转换为浏览器支持可以运行的JavsScript(ES5)代码。
1 | //例如babel将这段代码 |
在webpack中配置Babel
假设在react项目配置webpack:
一、安装npm包:
1 | npm install --save-dev babel-loader babel-core babel-plugin-transform-runtime babel-preset-es2015 babel-preset-react webpack-preset-babel-stage-0 |
二、在webpack配置文件中添加规则:
1 | module: { |
三、 在项目根目录创建名为.babelrc
的文件,这是Babel的配置文件
在配置文件中安装插件(plugins)或预设(presets,也就是一组插件)来指示 Babel 去做什么事情。在下面配置中:
babel-preset-es2015 打包了 es6 的特性;
babel-preset-stage-0 打包处于 strawman 阶段的语法;
babel-preset-react 打包react全家桶语法;
Babel 几乎可以编译所有时新的 JavaScript 语法,但对于 APIs 来说却并非如此。例如: Promise、Set、Map 等新增对象,Object.assign、Object.entries等静态方法,babel-plugin-transform-runtime为了达成使用这些新API。
1 | //.babelrc内容 |
Babel模块
Electron入门教程
Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。 Electron通过将 Chromium 和 Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。
相信大部分前端同学都听说或者了解过NodeJs 它是一个基于Chrome V8 引擎的JavaScript运行时, 而 Chromium 是Google为发展自家浏览器Chrome而开启的开源浏览器项目,可以看成是是Chrome的先行版。大家较为熟悉的VS Code 和 Atom就是使用Electron来完成的。
从开发的角度来看, Electron application 本质上是一个 Node. js 应用程序。可以让前端开发者让你使用纯 JavaScript 调用丰富的原生操作系统APIs来创造桌面应用~
Quick Start
确认你的网络可以访问github , 若访问受限参考 安装指南 来了解如何用代理、镜像和自定义缓存
你肯定已经已经安装好git和node了,那么只要:
1 | # 官网已经有 electron-quick-start 仓库克隆下来 |
然后你的第一个桌面应用就开启了!
若你跟着一起实践到这里,肯定会发现界面有些许不同?我这里多了个调试界面,那么来看下代码看看。在Electron中main.js是入口文件:
1 | //main.js |
与现有React工程结合
迫于不会Vue ,在这里介绍下React工程如何和Electron结合起来。