node.js学习资料
sublime text 3自带build的系统,只需要在tools->build system-> new build system... 写入:
{
"shell_cmd": "node $file",
"selector": "source.js"
}
保存为 node.sublime-build,就可以使用cmd+shift+b调出窗口选择node编译.
在keymap绑定按键:
{
"keys": ["ctrl+c"],
"command": "exec",
"args": {
"kill": true
}
}
就可以使用快捷键ctrl+c关闭,或者手动点选tools-> cancel build中断。
需要编译es6的代码的话可以考虑用babel,build tools替换成
{ "shell_cmd": "babel-node $file", "selector": "source.js" }
=================================================================================================
很多人可能会疑惑vuejs不是像jquery插件一样可以直接引入vuejs插件后,然后嵌入在html中写小demo吗?为什么还需要搭建vue环境,其实搭建vue环境后,不用引入插件,直接写.vue后缀文件,运行此文件就可以显示小demo效果。
https://www.jianshu.com/p/965e3017c345
node只是前端的一整套工具链罢了。
虽然说学习Vue 只需要会JavaScript就能上手学习,但是学习是一个从简单到复杂的过程,你总会遇到越来越复杂的项目,可能从github上拉下来的Demo包含一些前端自动化的知识,这时候就需要你对Node有部分了解,当然这部分内容只是针对于前端自动化一些工具的使用,类似gulp这些,属于辅助开发的部分,如果你对Node有所了解的话,这种情况就不会对你造成困惑
npm就好比是一个前端的插件商店,里面有各种开发者写的包,你需要的时候就从命令行安装就可以了,类似与linux的apt的概念。
nodejs你也知道是服务端,浏览器端js有很多缺陷,比如不能操作本地文件呐。而服务端的js就可以,所以用node就能帮我们管理文件,处理I/O,然后经过牛逼的开发者一封装,一改造,一个grunt就出来了。
grunt,gulp,webpack这些只是工具,帮助我们前端完成复杂的开发,提高效率。你完全可以不用,如果不会的话还强行用只会加慢你的开发效率,而违背了初衷。
npm是社区、不光是node能用的库、很多前端的库也在里面发布
前端最近流行的工程化工具(我用的webpack)和主流框架(我目前主要用vue)确实比较多,各有优劣,题主说的乱,也可以说是前端的圈子更丰富了。
前端生态/工程化
通读官方教程 (guide) 的基础篇。不要用任何构建工具,就只用最简单的 <script>,把教程里的例子模仿一遍,理解用法。不推荐上来就直接用 vue-cli 构建项目,尤其是如果没有 Node/Webpack 基础。
走完基础文档后,如果你对于基于 Node 的前端工程化不熟悉,就需要补课了。下面这些严格来说并不是 Vue 本身的内容,也不涵盖所有的前端工程化知识,但对于大型的 Vue 工程是前置条件,也是合格的『前端工程师』应当具备的知识。
在 2016 年学 JavaScript 是一种什么样的体验? https://zhuanlan.zhihu.com/p/22782487
========================================================================================================
我们都知道像chrome和safari的内核都是webkit,而node-webkit 相当于一个自定义的webkit内核浏览器中执行服务器端代码 node js。
用来做啥?RestAPI用它比较多。为什么就不多解释了,前面理论知识都概括的差不多了。现在web app比较流行的趋势angular+node,或者react+backbone/flux+node。 说说为啥用它?
一、天下武功唯快不破,node在restapi这块真的比c# webapi快多了。我们公司用c#写的,那个慢啊,深有体会。 二、用的人多!github那个火啊,各种第三方module,认识有个node developer开发了120多个modules 三、免费,不仅如此,服务器成本你就能省好多,aws, azure的价格已经哭瞎,买个linode或者digital ocean便宜又实惠,自己一个人做产品当然越便宜越好 四、赖的再学c# Java了,直接上JavaScript 壮哉我大JavaScript,真是一秒钟让你变fullstack!有木有!不再是永远的加特效和animation了。
微软在vs2015都加入了js 编译器,小伙伴们还在等神马。 有兴趣的小伙伴可以看下:Node.js Tools 1.0 for Visual Studio https://blogs.msdn.microsoft.com/visualstudio/2015/03/25/node-js-tools-1-0-for-visual-studio/
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 Node.js 的包管理器 npm,是全球最大的开源库生态系统。
国外有一篇非常好的Node.js 介绍文章,从原理入手讲解,在这里给大家翻译一下(本人非翻译出身,一些地方结合了点个人理解,有错误欢迎指出)。 原文地址 Node.js is the New Black
译文如下: 如果你去年注意过技术方面的新闻,我敢说你至少看到node.js不下一两次。那么问题来了“node.js是什么?”。有些人没准会告诉你“这是一种通过JavaScript语言开发web服务端的东西”。如果这种晦涩解释还没把你搞晕,你没准会接着问:“为什么我们要用node.js?”,别人一般会告诉你:node.js有非阻塞,事件驱动I/O等特性,从而让高并发(high concurrency)在的轮询(Polling)和comet构建的应用中成为可能。
当你看完这些解释觉得跟看天书一样的时候,你估计也懒得继续问了。不过没事。我这篇文章就是在避开高端术语的同时,帮助你你理解node.js的。
浏览器给网站发请求的过程一直没怎么变过。当浏览器给网站发了请求。服务器收到了请求,然后开始搜寻被请求的资源。如果有需要,服务器还会查询一下数据库,最后把响应结果传回浏览器。不过,在传统的web服务器中(比如Apache),每一个请求都会让服务器创建一个新的进程来处理这个请求。
后来有了Ajax。有了Ajax,我们就不用每次都请求一个完整的新页面了,取而代之的是,每次只请求需要的部分页面信息就可以了。这显然是一个进步。但是比如你要建一个FriendFeed这样的社交网站(类似人人网那样的刷朋友新鲜事的网站),你的好友会随时的推送新的状态,然后你的新鲜事会实时自动刷新。要达成这个需求,我们需要让用户一直与服务器保持一个有效连接。目前最简单的实现方法,就是让用户和服务器之间保持长轮询(long polling)。
HTTP请求不是持续的连接,你请求一次,服务器响应一次,然后就完了。长轮训是一种利用HTTP模拟持续连接的技巧。具体来说,只要页面载入了,不管你需不需要服务器给你响应信息,你都会给服务器发一个Ajax请求。这个请求不同于一般的Ajax请求,服务器不会直接给你返回信息,而是它要等着,直到服务器觉得该给你发信息了,它才会响应。比如,你的好友发了一条新鲜事,服务器就会把这个新鲜事当做响应发给你的浏览器,然后你的浏览器就刷新页面了。浏览器收到响应刷新完之后,再发送一条新的请求给服务器,这个请求依然不会立即被响应。于是就开始重复以上步骤。利用这个方法,可以让浏览器始终保持等待响应的状态。虽然以上过程依然只有非持续的Http参与,但是我们模拟出了一个看似持续的连接状态
我们再看传统的服务器(比如Apache)。每次一个新用户连到你的网站上,你的服务器就得开一个连接。每个连接都需要占一个进程,这些进程大部分时间都是闲着的(比如等着你好友发新鲜事,等好友发完才给用户响应信息。或者等着数据库返回查询结果什么的)。虽然这些进程闲着,但是照样占用内存。这意味着,如果用户连接数的增长到一定规模,你服务器没准就要耗光内存直接瘫了。
这种情况怎么解决?解决方法就是刚才上边说的:非阻塞和事件驱动。这些概念在我们谈的这个情景里面其实没那么难理解。你把非阻塞的服务器想象成一个loop循环,这个loop会一直跑下去。一个新请求来了,这个loop就接了这个请求,把这个请求传给其他的进程(比如传给一个搞数据库查询的进程),然后响应一个回调(callback)。完事了这loop就接着跑,接其他的请求。这样下来。服务器就不会像之前那样傻等着数据库返回结果了。
如果数据库把结果返回来了,loop就把结果传回用户的浏览器,接着继续跑。在这种方式下,你的服务器的进程就不会闲着等着。从而在理论上说,同一时刻的数据库查询数量,以及用户的请求数量就没有限制了。服务器只在用户那边有事件发生的时候才响应,这就是事件驱动。
FriendFeed是用基于Python的非阻塞框架Tornado (知乎也用了这个框架) 来实现上面说的新鲜事功能的。不过,Node.js就比前者更妙了。Node.js的应用是通过javascript开发的,然后直接在Google的变态V8引擎上跑。用了Node.js,你就不用担心用户端的请求会在服务器里跑了一段能够造成阻塞的代码了。因为javascript本身就是事件驱动的脚本语言。你回想一下,在给前端写javascript的时候,更多时候你都是在搞事件处理和回调函数。javascript本身就是给事件处理量身定制的语言。
Node.js还是处于初期阶段。如果你想开发一个基于Node.js的应用,你应该会需要写一些很底层代码。但是下一代浏览器很快就要采用WebSocket技术了,从而长轮询也会消失。在Web开发里,Node.js这种类型的技术只会变得越来越重要。

浙公网安备 33010602011771号