React 항목 에 TypeScript 사용 하기(지속 업데이트)
4581 단어 react.jstypescript
npm install -g create-react-app
프로젝트 생 성
create-react-app proName --typescript
소 칼 을 조금 시험 해 보다.
ts 코드 주석 을 컴 파일 러 오류 알림 을 볼 수 있 습 니 다.
Class 구성 요소
폴 더 아래 생 성
src
import React, { Component } from "react";
// props name , string ( props.name )
interface IProps {
name: string;
}
// state color red blue
interface IState {
color: "red" | "blue";
}
export default class Home extends Component {
constructor(props: IProps) {
super(props);
this.state = {
color: "red"
};
}
render() {
return (
{this.props.name} !
);
}
changeColor = () => {
let color = this.state.color;
if (color === "red") {
this.setState({
color: "blue"
});
} else {
this.setState({
color: "red"
});
}
};
}
도입
import React} from "react";
import "./App.css";
// import
import Home from "./pages/home/Home";
function App() {
return (
{/* Home , Home name: string; */}
);
}
export default App;
함수 식 구성 요소
폴 더 아래 생 성
pages/home/Home.tsx
/* */
import React from "react";
// props count,increment,decrement,
interface IProps {
count: number;
increment: () => void;
decrement: () => void;
}
const Counter = ({ count, increment, decrement }: IProps) => {
return (
{count}
);
};
export default Counter;
도입
import React, { useState, useCallback } from "react";
import "./App.css";
import Counter from "./pages/counter/Counter";
function App() {
const [count, setCount] = useState(1);
const increment = useCallback(() => {
setCount(count + 1);
}, [count]);
const decrement = useCallback(() => {
setCount(count - 1);
}, [count]);
return (
{/* count、increment、decrement , */}
);
}
export default App;
고급 구성 요소
폴 더 아래 생 성
App.tsx
/* */
import React, { Component } from "react";
export class App extends Component {
render() {
return (
react
React.js
);
}
}
/* Com , any, const CopyrightApp = withCopyright(123); , , withCopyright( )*/
// Com react
const withCopyright = (Com: React.ComponentType) => {
return class extends Component {
render() {
return (
<>
@copyright; xxx
>
);
}
};
};
const CopyrightApp = withCopyright(App);
export default CopyrightApp;
도입
import React from "react";
import "./App.css";
import Hoc from "./pages/components/Hoc";
function App() {
return (
);
}
export default App;
Event
폴 더 아래 생 성
src
import React, { ReactNode } from "react";
// interface
type IProps = {
// react
children: ReactNode;
// react
click(e: React.MouseEvent): void;
};
const Button = (props: IProps) => {
return (
);
};
export default Button;
도입
import React, { useState, useCallback } from "react";
import "./App.css";
import Button from "./pages/components/Button";
function App() {
// e any, e. , e React.MouseEvent ,e. ( )
const click = useCallback((e: React.MouseEvent) => {
console.log(e);
}, []);
return (
);
}
export default App;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[React.js] React Queryfetching : 데이터 요청 상태 네트워크에서 데이터를 fetch 하고 A 라는 query key 로 캐싱함 만일 cacheTime 이 지나기 전에 A 쿼리 인스턴스가 새롭게 mount 되면, fetch 가 실행...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.