parcel 入門 http://www.javashuo.com/article/p-yqrvpqkp-y.html
webpack 與parcel對比 http://www.javashuo.com/article/p-ecempczq-bn.htmljavascript
webpack 的resolve配置瞭解 對比 http://www.javashuo.com/article/p-xnaaxcin-gd.htmlcss
Lerna https://blog.csdn.net/scq000123/article/details/87949042html
parcel的優勢: 極速打包時間 將你全部的資源打包 自動轉換 零配置代碼 自動熱加載 友好的錯誤日誌
parcel的缺點: (1) 生態還不是和完善,插件什麼的不是很晚上。 (2) 不太適合大項目。 (3) 不支持SourceMap (4) 不支持剔除無效代碼(TreeShaking) (5) 一些依賴會讓Parcel出錯 (6) 不靈活的配置 沒法控制對部分文件的特殊處理,以實現諸如按需加載這樣的需求; 沒法控制輸出文件名的Hash值和名稱; 沒法控制構建輸出目錄結構; 沒法映射路徑以縮短導入語句; HTTP開發服務器不支持HistoryApi;
npm view jquery versions npm view jquery version
npm list
npm 是如何解決不一樣的包依賴的版本不一樣的。前端
flat全部的包。不一樣版本就安裝不一樣的版本。而後軟連接過去。 vue
##### 有時間瞭解下這個 nodemon --inspect 包。html5
##### 你用過或者瞭解的node包有哪些。java
☀http☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀☀node
babel react
關於babel https://www.jianshu.com/p/0dc3bddb6da8jquery
### https: 利用對稱加密和非對稱加密。 #### 過程: 用戶aaa訪問某網站xxx 1. aaa發起請求到xxx網站。 2. xxx返回了本身的公鑰ggg和一些信息。 3. aaa拿到這些信息去Ac權威機構證實一下(後邊講這個不被竊取的原理)。 4. Ac告訴aaa這個公鑰和信息對得上,是正確的。 5. aaa本身生成一個私鑰sss,而後用這個公鑰ggg加密這個私鑰發給xxx. 6. 只有xxx的私鑰能夠解開這個公鑰ggg的信息獲取到這個私鑰sss。 7. 而後aaa和xxx之間的聯繫就是用這個私鑰sss加密. #### 分析 若是aaa和xxx之間存在代理服務器ttt,若是保證ttt解密不了這些數據。 1. aaa用xxx的公鑰ggg加密私鑰sss,這個信息只有xxx網站本身的私鑰能夠解密。即便ttt獲取到了,由於不知道ggg對應的私鑰沒法解密。因此私鑰ggg永遠沒法獲取到sss,永遠不知道他們之間在說什麼。 #### 分析 代理服務器ttt爲何不能在aaa獲取證書ggg和aaa從Ac求證的過程當中作手腳呢。 1. Ac的私鑰瀏覽器都有內置的。利用Ac加密的信息只有Ac的公鑰能夠解密。這樣ttt永遠不知道用戶aaa在和ac之間傳遞的什麼信息。 2. 而當Ac瀏覽器返回信息ok,ok的時候,雖然代理服務器ttt知道說的ok可是永遠不知道在說什麼是ok的。
###mvc Model: 模型(用於封裝與應用程序的業務邏輯相關的數據以及對數據的處理方法) View: 視圖(渲染頁面) Controller: 控制器(M和V之間的鏈接器,用於控制應用程序的流程,及頁面的業務邏輯) === 耦合性低,重用性高,生命週期成本低,可維護性高,部署快 ###mvp Presenter View 與 Model 不通訊,都經過 Presenter 傳遞。Presenter徹底把Model和View進行了分離,主要的程序邏輯在Presenter裏實現。 在MVP中,View並不直接使用Model,它們之間的通訊是經過Presenter (MVC中的Controller)來進行的,全部的交互都發生在Presenter內部。 優勢: (1)能夠更高效地使用模型,由於全部的交互都發生在一個地方——Presenter內部;(2)能夠脫離用戶接口來測試這些邏輯(單元測試)。 ###mvvm MVVM是Model-View-ViewModel的簡寫。 MVVM模式實際上是MV模式與WPF結合的應用方式時發展演變過來的一種新型架構模式。 與Mvp的區別是,採用雙向綁定(data-binding):View的變更,自動反映在 ViewModel,反之亦然。
#### vue 漸進式的前端mvvm框架。核心。雙向綁定,虛擬dom,diff比較更新,高效。容易與其餘框架結合。中文生態圈很好。輕量高效。免費開源。vue的組件三大核心,屬性事件插槽。
2014年2月開源。
漸進式:易上手,靈活。
核心庫:vue vue-router vuex vue-cli
生態圈的庫: element axios nuxt.js
#### react facebook公司2013年推出開源庫。如今到了react ,16.8.6版本了吧。核心,虛擬dom,mvvm雙向綁定,單向數據流,組件化開發。
核心庫. react react-dom redux
生態的庫 React-Bootstrap Ant-design SemanticUI next.js
#### angular 2009年和node一塊兒出現的。
Angular 1 是指 AngularJS,典型的 MVC 架構 ,Angular 2 是面向 mobile app 的架構,爲了達到APP 原生的效果, Angular 2 特有引入了 NativeScript 技術。Angular 2 解決了 mobile app 跨平臺的問題.(ios,android).
angular2也能夠說是mvc,或者mvvm框架。基於typescript,angular4比angular2更快,基於component,推崇directive,pipe, 依賴注入。
核心庫: @angular/core,@angular/common,@angular/forms,@angular/router
生態庫: rxjs,ng-zorro,ng-alain
angular 若是父給子傳了一個指針對象。父改變指針對象,父和子的dom都會改變。若是子改變指針對象的某一個屬性,子和父的dom都會改變。子改變指針對象(引用修改),子的dom會改變,父的dom不會。Input只能檢測到指針對象引用的改變。 react 若是父給子傳了一個指針對象。父改變指針對象,父與子的dom都會改變。子沒法修改父傳給子的state。子只能經過emit高速父修改。 vue 若是父給子傳了一個指針對象。父改變指針對象,父與子的dom都會改變。若是子改變指針對象的某一個屬性,子和父的dom都會改變。子改變指針對象(引用修改),那麼會報錯。
1.5 Vue與React的區別
對已經瞭解的內容,作幾點介紹,並不全面,後期會不斷更新~
React與Vue都是組件化的開發框架,總體功能相似。
1、數據處理模式(單項 or 雙向):
React推崇單項數據流的處理模式,數據不能夠直接改變,每次改變數據需經過setstate返回新的數據。react的dom變化,必須經過事件返回給數據,而vue則不須要經過事件,直接就改變了。
Vue推崇雙向數據流的處理模式,是響應式,能夠雙向綁定。
2、寫法(函數式 or 聲明式):
React3.0以前是類式的組件化寫法,3.0新版本以後是函數式的組件化寫法(組件不少,api不多)
Vue是聲明式的組件寫法(相比React來講,api不少)
3、開發方式(全程js or 組合到一個頁面當中):
React全程都是js,用js老生成html,所以有了JSX
Vue是將html、css、js放在一個文件當中,開發出單頁面應用程序
2 三個的數據狀態的對比。vuex react-redux service
http://www.javashuo.com/article/p-zfwesixs-en.html
3
#### 命令式編程,聲明式編程和函數式編程
命令式編程
注重過程,告訴計算機一步步一步步的如何去作。
聲明式編程
注重結果,只須要關注開發須要關注的事情,對於開發不須要的框架幫咱們完成好比map。咱們只關心遍歷的時候須要作什麼,置於遍歷的過程咱們並不關心。
函數式編程
函數式編程和聲明式編程是有所關聯的,由於他們思想是一致的:即只關注作什麼而不是怎麼作。但函數式編程不只僅侷限於聲明式編程。
函數式編程最重要的特色是「函數第一位」,即函數能夠出如今任何地方,好比你能夠把函數做爲參數傳遞給另外一個函數,不只如此你還能夠將函數做爲返回值。大部分常見的編程語言一半都已經提供了對這種編程方式的支持,好比 JavaScript,再有 C# 中的 LINQ 和 Java 中的 Lambda 和閉包的概念。
js 的箭頭函數。map函數。純函數和不純函數。函數能夠做爲參數傳遞。
#### ejs 1.轉義輸出 <%= 變量名 %> 2.js代碼 <% Javascript代碼 %> 3.不轉義輸出 <%- 變量名%> 4.使用include引入外部的文件 <% include 文件的地址 %> #### jade 格式化。 #### pug 使用語法 https://www.jianshu.com/p/e040cebad751
原來的多頁也用,測試效率低,模塊測試,自動化測試。
多頁應用,無頁面切換效果,而如今能夠添加過場動畫。
多頁應用,浪費服務器資源,而如今能夠減小http請求。
=== 多頁應用帶來的很差的緣由。
使用了高級的東西,兼容性很差,seo不友好。
場景要求,開發的自動度下降。
黑盒開發。
框架自己也會有學習成本。
=== 檢測代碼的commit
"commitizen"
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog"
}
},
"gitHooks": {
"commit-msg": "node ./verifyCommitMsg.js"
},
commit的時候會首先執行行precommit;
{
"precommit": "lint-staged"
},
"lint-staged": {
"src/**/*.{json,css,scss}": [
"prettier --write",
"git add"
],
"src/**/*.js": [
"eslint --fix",
"git add"
],
"webpack/**/*.js": [
"eslint --fix",
"git add"
]
},
http://www.javashuo.com/article/p-nzpsysmx-ex.html
##### package.json
http://www.javashuo.com/article/p-vhjgowdo-cv.html
##### commonjs 與 amd cmd
##### JSON.stringifyJSON.parse的弊端。