【11】基础知识:React脚手架

一、脚手架定义

xxx 脚手架:用来帮助程序员快速创建一个基于 xxx 库的模板项目

1、包含了所有需要的配置(语法检查、jsx 编译、devServer…)

2、下载好了所有相关的依赖

3、可以直接运行一个简单效果

二、使用 create-react-app 创建 react 应用

react 提供了一个用于创建 react 项目的脚手架库:create-react-app

项目的整体技术架构为: react + webpack + es6 + eslint

使用脚手架开发的项目的特点:模块化、组件化、工程化

创建项目并启动

第一步,全局安装:npm i -g create-react-app

第二步,切换到想创项目的目录,使用命令:create-react-app hello-react

第三步,进入项目文件夹:cd hello-react

第四步,启动项目:npm start

react 脚手架项目结构

public ---- 静态资源文件夹
	favicon.icon ------ 网站页签图标
	index.html -------- 主页面
	logo192.png ------- logo图
	logo512.png ------- logo图
	manifest.json ----- 应用加壳的配置文件
	robots.txt -------- 爬虫协议文件
src ---- 源码文件夹
	App.css -------- App组件的样式
	App.js --------- App组件
	App.test.js ---- 用于给App做测试
	index.css ------ 样式
	index.js ------- 入口文件
	logo.svg ------- logo图
	reportWebVitals.js --- 页面性能分析文件(需要web-vitals库的支持)
	setupTests.js ---- 组件单元测试的文件(需要jest-dom库的支持)

三、hello react 案例

1、新建 public 目录,创建 index.html 主页面

2、新建 src 目录

初始化 App.js 组件(组件可以使用 .jsx 结尾,与 js 进行区别)

/* 创建“外壳”组件App */

// 引入React,通过 React.Component 形式使用
// import React from 'react' 

// 引入React. 引入React.Component
import React, { Component } from 'react'

// 引入Hello组件
import Hello from './components/Hello/Hello'
// 引入Welcome组件
import Welcome from './components/Welcome/Welcome'

// 创建暴露App组件
export default class App extends Component {
  render() {
    return (
      <div>
        <Hello />
        <Welcome />
      </div>
    )
  }
}

index.js 配置应用入口文件

// 引入React核心库
import React from 'react'
// 引入ReactDOM
import ReactDOM from 'react-dom/client'
// 引入App组件
import App from './App'

// 渲染App组件到页面 ReactDOM.render is no longer supported in React 18 (18以下版本)
// import ReactDOM from 'react-dom'
// ReactDOM.render(<App />, document.getElementById('root'))

// 渲染App组件到页面 (18版本使用形式)
ReactDOM.createRoot(document.getElementById('root')).render(<App />)

3、src 目录下创建 components 目录

新建 Hello 组件 (Hello.jsx)

// 引入React. 引入React.Component
import React, { Component } from 'react'
// 引入style
import './Hello.css'

// 创建并暴露Hello组件
export default class Hello extends Component {
  render() {
    return (
      <h2 className="title">Hello - react!</h2>
    )
  }
}

Welcome 组件 (Welcome.js)

// 引入React. 引入React.Component
import React, { Component } from 'react'
// 引入style
import './Welcome.css'

// 创建并暴露Welcome组件
export default class Welcome extends Component {
  render() {
    return (
      <h2 className="bg">Welcome!</h2>
    )
  }
}

使用 css 形式写样式时,css 文件最终都会引入到 App.jsx 中,如果样式名重复,会出现样式覆盖。解决方法:

1、每个组件样式名注意不要重复

2、使用 less 语法,最外层 样式名 为 组件名,进行区分(例如,.hello { …} .welcome {…} )

3、css 模块化

Hello.css 命名改为  Hello.module.css

import './Hello.css' 引入改为 import hello from './Hello.module.css' 

className="title" 使用形式改为 className={hello.title}

Welcome 组件样式改为同上形式

四、React 插件 ES7+ React/Redux/React-Native snippets

插件市场安装 ES7+ React/Redux/React-Native snippets

rcc:Reac Class Component,React中的类式组件代码片段

rfc:Reac Function Component,React中的函数式组件代码片段

五、功能界面的组件化编码流程(通用)

1、拆分组件:拆分界面,抽取组件

2、实现静态组件:使用组件实现静态页面效果

3、实现动态组件

动态显示初始化数据:数据类型、数据名称、保存在哪个组件

交互(从绑定事件监听开始)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以使用 React 脚手架来编写一个简单的 To-Do List 应用程序。首先,我需要运行以下命令来创建一个新的 React 应用程序: ``` npx create-react-app todo-list ``` 这将创建一个名为 "todo-list" 的新项目,并生成一些默认的 React 代码和文件。 接下来,我需要对应用程序进行一些修改,以便它可以实现 To-Do List 的功能。我需要创建一个新的组件,用于渲染 Todo List,以及一个用于渲染单个 Todo 的子组件。 在 `src` 文件夹下创建一个名为 `Todo.js` 的文件,其中包含以下代码: ```jsx import React from 'react'; const Todo = ({ todo }) => { return ( <div> {todo.text} </div> ); } export default Todo; ``` 这个组件接收一个名为 `todo` 的属性,该属性包含一个 Todo 对象,并将其渲染为一个简单的 `<div>` 元素。 接下来,我需要修改 `App.js` 文件,以便它可以渲染 To-Do List 和单个 Todo 组件。在 `App.js` 文件中,我需要创建一个名为 `todos` 的状态,它将包含一个 Todo 对象数组。然后,我需要使用 `map()` 方法将每个 Todo 对象映射到一个 `<Todo>` 组件上,并将其渲染到页面上。 ```jsx import React, { useState } from 'react'; import Todo from './Todo'; function App() { const [todos, setTodos] = useState([ { text: 'Learn React' }, { text: 'Build a To-Do List' }, { text: 'Deploy the App' }, ]); return ( <div> {todos.map((todo, index) => ( <Todo key={index} todo={todo} /> ))} </div> ); } export default App; ``` 在这个代码中,我使用 `useState()` 钩子来创建一个名为 `todos` 的状态,并初始化它为包含三个 Todo 对象的数组。然后,我使用 `map()` 方法将每个 Todo 对象映射到一个 `<Todo>` 组件上,并使用 `key` 属性来确保每个组件都有一个唯一的标识符。 最后,我需要在页面上添加一些输入框和按钮,以便用户可以添加新的 Todo。我将创建一个名为 `AddTodo` 的组件,它将包含一个文本输入框和一个“添加”按钮。当用户点击“添加”按钮时,它将调用一个名为 `addTodo` 的函数,该函数将新的 Todo 对象添加到 `todos` 状态中。 ```jsx import React, { useState } from 'react'; import Todo from './Todo'; function App() { const [todos, setTodos] = useState([ { text: 'Learn React' }, { text: 'Build a To-Do List' }, { text: 'Deploy the App' }, ]); const addTodo = (event) => { event.preventDefault(); const text = event.target.elements.todo.value; const newTodo = { text }; setTodos([...todos, newTodo]); event.target.elements.todo.value = ''; } return ( <div> {todos.map((todo, index) => ( <Todo key={index} todo={todo} /> ))} <form onSubmit={addTodo}> <input type="text" name="todo" /> <button type="submit">Add Todo</button> </form> </div> ); } export default App; ``` 在这个代码中,我创建了一个名为 `addTodo` 的函数,它将从输入框中获取文本,并将其添加到 `todos` 状态中。然后,我将在页面上添加一个表单,它将包含一个文本输入框和一个“添加”按钮,并使用 `onSubmit` 属性来调用 `addTodo` 函数。 这个简单的 To-Do List 应用程序涵盖了一些常见的 React 知识点,包括: - 使用 `create-react-app` 脚手架创建新的 React 应用程序 - 使用状态和钩子来管理应用程序状态 - 创建和使用 React 组件 - 使用 `map()` 方法在列表中渲染组件 - 处理表单输入并调用函数来更新状态 当然,这只是 React 生态系统的冰山一角,但这个简单的示例应该可以帮助你开始了解 React基础知识
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值