
近年 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