1、声明式编程
2、组件化开发
3、多平台适配yuan
- <h2 class="title">h2>
- <button class="btn">改变文本button>
-
- <script>
- let msg = "Hello World";
- const titleEl = document.querySelector(".title");
- titleEl.innerHTML = msg;
- const btnEl = document.querySelector(".btn");
- btnEl.addEventListener("click", (e) => {
- msg = "Hello React";
- titleEl.innerHTML = msg;
- });
- script>
React开发必须依赖三个库
1、react:包含react所必须的核心代码
2、react-dom:react渲染在不同平台所需要的核心代码
3、babel:将jsx转换成React代码的工具
(1)引入依赖
1、直接CDN引入
2、下载后,添加本地依赖
3、npm管理(脚手架使用)
- <body>
-
- <script
- src="https://unpkg.com/react@16/umd/react.development.js"
- crossorigin
- >script>
- <script
- src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"
- crossorigin
- >script>
- <script src="https://unpkg.com/babel-standalone@6/babel.min.js
- ">script>
- <div id="app">appdiv>
-
-
- <script type="text/babel">
- let msg = "Hello World";
- function btnClick() {
- msg = "Hello React";
- render();
- }
- // 渲染的内容,挂载的对象
- function render() {
- ReactDOM.render(
- <div>
- <h2>{msg}h2>
- <button onClick={btnClick}>改变文本button>
- div>,
- document.getElementById("app")
- );
- }
- render();
- script>
- body>
代码组件化
- <body>
-
- <script
- src="https://unpkg.com/react@16/umd/react.development.js"
- crossorigin
- >script>
- <script
- src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"
- crossorigin
- >script>
- <script src="https://unpkg.com/babel-standalone@6/babel.min.js
- ">script>
- <div id="app">appdiv>
-
-
- <script type="text/babel">
- // 封装App组件 想让app是个组件必须先继承
- class App extends React.Component {
- // 构造器定义属性
- constructor() {
- super(); // 初始化父类实例,才可以使用this
- // 当数据变化引起页面的变化,不能直接定义在对象里面,必须写在state对象里面
- this.state = {
- msg: "Hello World",
- };
- }
- render() {
- return (
- <div>
- <h2>{this.state.msg}h2>
- <button onClick={this.btnClick.bind(this)}>改变文本button>
- div>
- );
- }
- btnClick() {
- //直接修改页面不会发生变化 this.state.msg = "Hello React";
- // 必须通过一个函数执行 数据更新操作render函数
- this.setState({
- msg: "Hello React",
- });
- }
- }
- ReactDOM.render(<App />, document.getElementById("app"));
- script>
- body>
(2)使用脚手架
原生使用的是命令式编程,react使用的是声明式编程
命令式编程:每做一个操作,都是计算机(浏览器)一步步命令
声明式编程:表明想要做什么,应该做什么,但是不指定具体怎么做