[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