📅  最后修改于: 2023-12-03 14:46:58.362000             🧑  作者: Mango
本文将向你介绍如何使用 Create React App 和 TypeScript 开发 React 应用。由于 TypeScript 帮助我们大大减少了代码类型相关的错误,因此使用 TypeScript 来开发 React 应用是一种非常好的选择。
在开始之前,请确保在您的计算机上已安装 Node.js 和 npm。
我们推荐使用 LTS 版本的 Node.js。
Create React App 是一个用于创建 React 应用程序的官方脚手架程序。使用它可以帮助我们避免一些繁琐的配置工作。
可以通过 npm 或者 yarn 来安装 Create React App:
npm install -g create-react-app
或者
yarn global add create-react-app
创建 React 应用程序非常简单,只需要输入以下命令即可:
create-react-app my-app --template typescript
其中,my-app
是你的应用程序的名称,--template typescript
表示我们要创建的是一个 TypeScript 应用程序。
在开始撰写我们的 React 应用程序之前,我们需要对 TypeScript 有一个基本的了解。
TypeScript 是一种强类型的编程语言,我们可以根据需要为变量、函数、接口等添加类型注解:
let num: number = 123;
function greet(name: string): string {
return `Hello ${name}!`;
}
interface Person {
name: string;
age: number;
}
泛型是 TypeScript 的一个非常强大的功能,它允许我们编写可以适用于多种类型的代码:
function identity<T>(arg: T): T {
return arg;
}
let output1 = identity<string>("hello");
let output2 = identity<number>(123);
接口是 TypeScript 的一个核心概念,它允许我们定义代码之间的契约:
interface Person {
name: string;
age: number;
}
function greet(person: Person) {
return `Hello ${person.name}!`;
}
现在,我们已经准备好开始开发我们的 React 应用程序了!
React 是一个基于组件构建 UI 的库。因此,我们首先需要定义一些 UI 组件:
import * as React from "react";
interface ButtonProps {
text: string;
onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;
}
export function Button(props: ButtonProps) {
return <button onClick={props.onClick}>{props.text}</button>;
}
interface InputProps {
label: string;
type: string;
value: string;
onChange: (event: React.ChangeEvent<HTMLInputElement>) => void;
}
export function Input(props: InputProps) {
return (
<div>
<label>{props.label}</label>
<input type={props.type} value={props.value} onChange={props.onChange} />
</div>
);
}
接下来,我们需要编写一个主要的组件,用来展示我们的 UI 组件并处理用户的输入:
import * as React from "react";
import { Button, Input } from "./components";
interface AppState {
firstName: string;
lastName: string;
fullName: string;
}
export default class App extends React.Component<{}, AppState> {
constructor(props: {}) {
super(props);
this.state = {
firstName: "",
lastName: "",
fullName: "",
};
}
private handleFirstNameChange = (event: React.ChangeEvent<HTMLInputElement>) => {
this.setState({
firstName: event.target.value,
fullName: `${event.target.value} ${this.state.lastName}`,
});
};
private handleLastNameChange = (event: React.ChangeEvent<HTMLInputElement>) => {
this.setState({
lastName: event.target.value,
fullName: `${this.state.firstName} ${event.target.value}`,
});
};
private handleSubmit = () => {
alert(`Hello ${this.state.fullName}!`);
};
public render() {
return (
<div>
<Input label="First Name" type="text" value={this.state.firstName} onChange={this.handleFirstNameChange} />
<Input label="Last Name" type="text" value={this.state.lastName} onChange={this.handleLastNameChange} />
<Button text="Submit" onClick={this.handleSubmit} />
</div>
);
}
}
最后一步是将我们的应用程序渲染到页面上:
import * as React from "react";
import * as ReactDOM from "react-dom";
import App from "./App";
ReactDOM.render(<App />, document.getElementById("root"));
现在,我们就可以运行我们的应用程序了!
在命令行中输入:
npm start
或者
yarn start
然后访问 http://localhost:3000 即可。