原创 前端持續集成之——概念篇

在談持續集成之前,我們先來回顧一下傳統的軟件開發模式-瀑布開發模型 在傳統軟件開發流程中,開發、測試、運維三者是割裂開的,軟件開發流程被分割成了多個獨立的環節,分別由不同的人員執行。這使得軟件開發過程中需要付出高昂的溝通成本,層層手動的

原创 React 全家桶之 react-redux

在談 react-redux 之前,我們先來回顧一下 react 組件的通信方式: 通過 props 父傳子,子傳孫。缺點是層級較深的話,傳遞會比較麻煩。消息橫向傳遞很麻煩。 消息訂閱發佈模式,需要自己實現監聽和觸發這一過程。消息可以同級

原创 React 全家桶之 react

目錄   react 生命週期 零、編譯階段 一、初始化階段 二、運行中的狀態 文本節點的更新 原生節點的更新 自定義組件的更新 三、銷燬階段 react 生命週期 react的生命週期大致分爲三個時期:初始化、運行中、銷燬。 零、編譯

原创 前端持續集成之—— Gitlab CI

Gitlab CI/CD 開發者推送、提交代碼到Gitlab,Gitlab通過項目的 .gitlab-ci.yml 文件配置,找到指定的項目gitlab runner,runner運行相關的命令,進行編譯、 集成、測試、交付、部署,一切順

原创 cookie、session、token 的區別

每個 http 請求之間是相互獨立,當前的請求即不會受前一個影響,也不會影響到下一個。當我們的網站內容完全是展示性的內容時,沒有問題,但是當我們需要標識用戶身份時就沒有辦法了。 1,session 在服務器端,cookie 在客戶端(瀏覽

原创 React 全家桶之 react 性能優化

react 整個生命週期大概分爲三個階段:掛載階段、更新階段、銷燬階段,我們在談 react 優化的時候主要還是針對更新階段。 render 我們先來回顧一下 render 函數做了什麼事情 構建 Virtual DOM 樹 diff 出

原创 js 事件委託優缺點

優點 減少了事件註冊,節省了內存,如在 table 上代理所有 tr 的 click 事件 簡化了 dom 更新時的事件操作,如現在 table 內增加了一行 tr,不用再爲這個 tr 添加事件了 缺點 事件委託基於冒泡,不冒泡的事件無法

原创 Git LFS 初探

Git LFS(Large File Storage, 大文件存儲),是 Github 開發的一個 Git 的擴展,用於實現 Git 對大文件的支持。Git v2.12後的版本才支持了Git LFS。通常會利用它來把項目中的大文件存儲在

原创 websocket 連接過程

首先,websocket屬於應用層協議,和 http 一樣也是基於 TCP/IP 協議。websocket 連接的建立需要藉助 http,連接建立完之後就與 http 無關了。 過程 Connection:Connection必須設置爲U

原创 CommonJS 和 ES6 的模塊標準有什麼區別

目前主流的模塊規範 UMD CommonJs es6 module umd 模塊(通用模塊) (function (global, factory) { typeof exports === 'object' && typeof

原创 React 全家桶之 react-router

傳統的多頁模式 後端控制路由 在以前我們採用的都是一個 URL 對應一個 html 頁面的方式,由後端或者服務器去做路由控制。當一個 URL 找不到對應的頁面時就會返回 404. 單頁模式(single page application,

原创 代碼規範篇——各種lint

一、eslint ESLint 是在 ECMAScript/JavaScript 代碼中識別和報告模式匹配的工具,它的目標是保證代碼的一致性和避免錯誤。這是官網地址 https://eslint.bootcss.com/docs/user

原创 前端架構系列

年底了,打算對這一年中用到的技術以及心得做一個總結。主要分下面幾個模塊的內容 http 系列 DNS 解析 五層因特網協議 http 請求完整路徑 React 全家桶系列 react react-router redux mobx

原创 Vue 全家桶之 vue

本篇文章是在閱讀《剖析 Vue.js 內部運行機制》小冊子後總結所得,想要了解詳細內容,請參考原文:https://juejin.im/book/5a36661851882538e2259c0f 閱讀源碼前想要先了解Vue的內部機制和運行