React开发深度指南

一、环境搭建与工程配置

1.1 现代脚手架选择

# 官方推荐方式
npx create-react-app my-app --template typescript

# Vite方案(推荐)
npm create vite@latest my-react-app -- --template react-ts
配置差异对比:
特性 CRA Vite
启动速度 15-30s <1s
热更新 全量刷新 按需HMR
构建输出 单一bundle 原生ESM
配置自由度 eject后修改 开箱即配置

1.2 必要依赖配置

// vite.config.ts 典型配置
export default defineConfig({
   
   
  plugins: [react()],
  resolve: {
   
   
    alias: {
   
   
      '@': path.resolve(__dirname, './src')
    }
  },
  build: {
   
   
    rollupOptions: {
   
   
      output: {
   
   
        manualChunks: {
   
   
          vendor: ['react', 'react-dom'],
          libs: ['lodash-es', 'dayjs']
        }
      }
    }
  }
})

1.3 代码规范体系

// .eslintrc 配置示例
{
   
   
  "extends": [
    "plugin:react/recommended",
    "airbnb",
    "airbnb-typescript"
  ],
  "rules": {
   
   
    "react/jsx-uses-react": "off",
    "react/react-in-jsx-scope": "off",
    "jsx-a11y/anchor-is-valid": "off"
  }
}

二、核心概念深度解析

2.1 JSX本质原理

// 编译前
const element = <h1 className="title">Hello</h1>;

// 编译后(React 17+)
const element = /*#__PURE__*/React.createElement(
  "h1",
  {
   
    className: "title" },
  "Hello"
);
设计原则:
  1. 语法糖:JavaScript的XML扩展
  2. 表达力:模板语法+编程能力结合
  3. 安全性:自动转义防XSS

2.2 组件设计模式

2.2.1 容器/展示组件模式
// 容器组件
const UserContainer = () => {
   
   
  const [users, setUsers] = useState<User[]>([]);
  
  useEffect(() => {
   
   
    fetchUsers().then(data => setUsers(data));
  }, []);

  return <UserList data={
   
   users} />;
}

// 展示组件
const UserList = ({
   
    data }: {
   
    data: User[] }) => (
  <ul>
    {
   
   data.map(user => (
      <li key={
   
   user.id}>{
   
   user.name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值