新建项目
方式一:CDN,react-dom依赖于react需放在其后面
<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
<script crossorigin src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
npx create-react-app my-app
基本示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>learn-react</title>
<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>
<script crossorigin src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
</head>
<body>
<div id="app"></div>
<script type="text/babel">
ReactDOM.render(
<h1>Hello, world!</h1>,
document.querySelector("#app")
);
</script>
</body>
</html>
JSX
使用表达式
const myId = 'acd';
const mydata = 'hello,react!'
ReactDOM.render(
(
<h2 id={myId}>{mydata}</h2>
),
document.querySelector("#app")
);
ReactDOM.render(
(
<div>
<ul> {
data.map((item, index) => {
return <li key={index}>{item}</li>
})
}
</ul>
</div>
),
document.querySelector("#app")
);
注意:
{} 中只能使用表达式,不能使用语句
使用 className 而非 class
- 绑定style:style={{color:’blue’}}
- 绑定id:id={myId}
- 只能有一个根标签
- 大小标签为react组件,小写标签为HTML标签
组件
函数式组件
适用于简单组件ReactDOM.render(
<MyComponent />,
document.querySelector("#app")
);
function MyComponent() {
return (
<div>
函数式组件
</div>
)
}
类组件
参考
【1】https://fullstackopen.com/zh/