近年 React 前端生態越來越豐富,大量的套件,都是採用 react 開發,也被越來越多企業使用,也讓我也想去了解一下 React,過去從 Angular 、到 Vue、再到 React,我也終於湊滿前端三大框架了,嗯,應該可以向神龍許願了。
Angular - 框架有很明確的規範,有完整的解決方案及強大的 CLI,後端人員上手比較容易。
Vue - 開發快速, api 簡單,使用起來無負擔,舊系統整合翻寫較容易。
React - 前端生態更完整,撰寫起來更貼近 JS 語法,對很多企業來說,穩定又安全,版本昇級不用打掉重練。
npx create-react-app jira --template typescript
P.S.npx非常智能的識別模塊,如果模塊存在,就使用。如果不存在,就臨時下載,用完就刪除。
加入 src
{ "compilerOptions": { "baseUrl": "src", ... }
state 有變動時 -> 影響到 virutal dom -> 重新渲染 dom,頁面更新。
class ContactInfoBlock extends React.Component { constructor(props) { super(props); } ... }
import { FC } from "react"; const ContactInfoBlock: FC<ContractProps> = () => { ... }
import React from "react"; export const Test = () => { let items = [1, 3, 5, 7]; return ( <div> {items?.map((item, index) => ( <span key={index}>{item}</span> ))} </div> ); }; export default Test;
import React from "react"; export const Test = () => { let items = [1, 3, 5, 7]; function showItem(item: Number) { if (item === 3) { return; } else { return <h1 key={item.toString()}>{item}</h1>; } } return <div>{items?.map((item, index) => showItem(item))}</div>; }; export default Test;
掛載(Mounting):已插入真實 DOM
更新(Updating):正在被重新渲染
卸載(Unmounting):已移出真實 DOM
開始寫 React時,就發現缺少了很多語法糖,寫起來突然很不習慣,撰寫真的比較貼近 js ,渲染的引擎,幾乎沒有框架的語法,就是單純的 js ,下面就是我覺得差異最多的是
1.缺少很多框架語法糖
2.會影響元件再渲染的就只有 prop 和 state (變得很單純)
3.生命週期更單純 - Mounting、Updating、Unmounting
4.條件判斷 - 也是寫一個 function , return 一個 html 標籤
5.for 迴圈渲染 - 就是自己寫 map 去渲染
6.撰寫自由度很高 ( 不見得是好事 )
但三大框架的共通點,都更傾向完整支援 typescript