[TOC]
# 同构JavaScript应用(Isomorphic JavaScript Applications)
同构JavaScript应用指的是用**JavaScript编写的应用,能够同时运行于客户端和服务器**。因此,你只需编写一次代码,在服务器上执行它来实施静态页面,同时执行于客户端以允许快速的交互。所以这种方法在两个世界中都能取得最好的结果,避免了性能和SEO 问题。
如今有几种框架可以帮助你开发这类应用,而其中最著名的框架之一可能就是 [Meteor](https://www.meteor.com/)。Meteor是一个开源的JavaScript框架,基础构架是Node.JS + MongoDB,专注于实时的Web应用。另一个想提到的项目是 [Render](http://rendrjs.github.io/rendr/),一个[通过 Airbnb](http://nerds.airbnb.com/weve-launched-our-first-nodejs-app-to-product) 的小型库,允许你同时在客户端和服务器上运行Backbone.js应用。
越来越多的企业开始对项目采用 Node.js,在客户端和服务器之间共享代码变成一种更普遍自然的选择。这一趋势通过库(如 [React](http://facebook.github.io/react/))共享模版得到增强。
# JavaScript机器学习框架
## Tensorflow.js
在2018年的TensorFlow开发者峰会上,Google宣布了他们的机器学习框架TensorFlow的JavaScript实现,称为TensorFlow.js。它是deeplearn.js的继承者,于2017年8月发布,现在命名为TensorFlow .js Core。该团队最近发布了针对TensorFlow的Node.js绑定,所以现在相同的JavaScript代码将同时适用于浏览器和Node.js.
Tensorflow.js由四层组成,即用于GPU支持的数字操作的WebGL API,用于用户交互的Web浏览器,以及两个API:Core和Layers。低级Core API对应于以前的deeplearn.js库,它提供硬件加速的线性代数运算和用于自动区分的急切API。更高级别的Layers API用于在Core之上构建机器学习模型。它还允许开发人员使用Keras或TensorFlow SavedModels导入之前使用Python训练的模型,并将其用于在浏览器中进行推理或转移学习。
## Brain.js
Brain.js是一个用JavaScript编写的神经网络库,是“Brain”库的延续,可以与Node.js一起使用或在浏览器中使用。它通过利用JavaScript的易用性和将API限制为几个方法调用和选项,简化了创建和训练神经网络的过程。针对不同的任务,它具有不同类型的网络,包括具有反向传播的前馈神经网络,时间步长递归神经网络,时间步长期短期记忆神经网络等。
# svelte
官网:https://svelte.dev/
# Angular
官网:https://angular.io/
https://www.angular.cn/docs/ts/latest/
> AngularJS is what HTML would have been, had it been designed for building web-apps.
Declarative templates with data-binding, MVW, MVVM, MVC, dependency injection and great testability story all implemented with pure client-side JavaScript!
# Polymer.JS
Polymer 是产自 Google 的另一个 JavaScript框架。毫无疑问,开发人员沉浸于Polymer得到的喜悦还远低于React.js,但是最近有了很多改进。Polymer 自带的材料设计组件具有非常高的质量。
此外,Polymer 具有作为 HTML 标准的一部分的 web 组件,比 ReactJS 承诺更长时间存在。因此,Polymer 在未来被另一个框架替代的可能性很小。
# Alpine
教程:https://scrimba.com/course/galpinejs
官网:
# Mithril.js
官网:https://mithril.js.org/
Mithril.js 与 React.js 几乎没有相似的功能。Mithril 为你提供了层次化的MVC组件和默认安全的模板,且具有用于高性能呈现,类似 React 的智能DOM差异检查功能。此外,可自定义的数据绑定和URL路由是Mithril.js令人印象深刻的两个功能。
# Riot.js
官网:https://riot.js.org
受 React 启发的,一个强大而灵活的 javascript 视图层
# Aurelia
官网:http://aurelia.io/
> Aurelia is the most powerful, flexible and forward-looking JavaScript client framework in the world.
# Adonis
# hapi
# Conditioner.js
官网:https://github.com/rikschennink/conditioner/
# CanJS
官网:https://canjs.com/
一个客户端JavaScript框架,用于构建丰富的Web界面。它提供了状态管理,模板,自定义元素以及更多功能。 CanJS可以轻松地完成常见的工作,同时帮助您构建不可能的事物。
CanJS是 [DoneJS ](https://donejs.com/) 的一部分。由核心DoneJS团队和Bitovi创建和维护。目前5.9.1。
# Cycle.js
官网:https://cycle.js.org/
A functional and reactive JavaScript framework for predictable code
# Donejs
官网:https://donejs.com/index.html
# Ember.js
# EsteJS
官网:https://github.com/este/este
EsteJS describes itself as: “The most complete React/Flux dev stack and starter kit for isomorphic functional web apps. Forget about evil frameworks, learn laser focused libraries and patterns instead. This dev stack is web dev panacea”. As stated, this is not a framework, but a preconfigured great development isomorphic stack. It follows Facebook’s recommended UI architecture, is reactive (http://www.reactivemanifesto.org/en) and aims to the future because it provides all the tools to write better JavaScript (BabelJS + FlowType).
# Rendr
官网:http://rendrjs.github.io/
Rendr 将自己定义为:“一个小型库,允许您在客户端和服务器上无缝运行 Backbone.js 应用程序。如果你喜欢用户界面MVC的 backboneJS 方法,那么这是一个有趣的选择。“这不是一个开发框架。
- 步入JavaScript的世界
- 二进制运算
- JavaScript 的版本是怎么回事?
- JavaScript和DOM的产生与发展
- DOM事件处理
- js的并行加载与顺序执行
- 正则表达式
- 当遇上this时
- Javascript中apply、call、bind
- JavaScript的编译过程与运行机制
- 执行上下文(Execution Context)
- javascript 作用域
- 分组中的函数表达式
- JS之constructor属性
- Javascript 按位取反运算符 (~)
- EvenLoop 事件循环
- 异步编程
- JavaScript的九个思维导图
- JavaScript奇淫技巧
- JavaScript:shim和polyfill
- ===值得关注的库===
- ==文章==
- JavaScript框架
- Angular 1.x
- 启动引导过程
- $scope作用域
- $q与promise
- ngRoute 和 ui-router
- 双向数据绑定
- 规范和性能优化
- 自定义指令
- Angular 事件
- lodash
- Test