React的入门第一步


一、React是什么?

ReactFacebook公司出品,用于创建用户界面的JavaScript

特点组件思维单向数据流虚拟DOM节点

二、安装脚手架及使用

1.脚手架安装

npm i create-react-app -g

2.新建项目

 创建项目:

create-react-app 项目名称

启动项目:

cd 项目名称
npm start

运行后命令行显示画面:

会自动打开页面,出现这个画面就是成功啦!

三、项目目录介绍

 

四、插件推荐 - Simple React Snippets

 快速生成代码,提高代码速度,具体可看插件的文档

 

 

五、React语法

jsx语法

JavaScript嵌套使用html模板

特点:

  1. 有且只有一个根节点
  2. {}书写js
  3. class改成className
  4. 数组可以包含html
  5. 对象样式自动展开
  6. {/* 注释 */}

 代码:

/* App.css */
.myh{
  color: blue;
}
//App.js
import "./App.css";
//创建ap组件
const arr = [<h1 key="a">AAA</h1>, <p key="b">BBB</p>, <h3 key="c">CCC</h3>];
const stl = { fontSize: "24px", color: "#f70" };
function App() {
  //返回一段dom节点
  return (
    <div>
      <h1 className="myh"> hello </h1>
      {arr}
      <p style={stl}>Mewow</p>
    </div>
  );
}
//导出app组件
export default App;

 运行结果:

模板语法

 (目前是在App.js中修改)

文本渲染

const str = "hello Mewow";
function App() {
  return (
    <div>
      <h1> 模板语法 </h1>
      <p> 1. 文本渲染 </p>
      <p> {str} </p>
      <p> {2 + 3} </p>
      <p> {str.split("").reverse().join("")} </p>
    </div>
  );
}
export default App;

html渲染

 需要使用 dangerouslySetInnerHTML={ { __html: msg }}

const msg = "<strong>Me</strong>Wow";
function App() {
  return (
    <div>
      <p>2.html渲染</p>
      <p dangerouslySetInnerHTML={
   
   { __html: msg }}></p>
    </div>
  );
}
export default App;

条件渲染

 借助 三目运算符 或者 &&

const score = 80;
let flag = true;
function App() {
  return (
    <div>
      <p>3.条件渲染</p>
      {score}
      {score >= 60 ? "及格" : "再学一遍"}
      {flag && <p>芝麻开门</p>}
    </div>
  );
}
export default App;

列表渲染

 借助 map函数

const list = ["react", "vue", "angular"];
function App() {
  return (
    <div>
      <p>4.列表渲染</p>
      {list.map((item, index) => (
        <p key={index}>{item}</p>
      ))}
    </div>
  );
}
export default App;

 上述代码运行结果:

事件响应

  1.  React事件与js事件一致,需要驼峰式写法
  2. 事件需要响应一个函数
  3. 事件函数的传参
function App() {
  function say(str) {
    alert("hi!" + str);
  }
  return (
    <div>
      <h1> 事件 </h1>
      <button onClick={() => alert("hello")}> 按钮 </button>
      <button onClick={say.bind(this, "say1")}> 传参按钮1 </button>
      <button onClick={() => say("say2")}> 传参按钮2 </button>
    </div>
  );
}

export default App;

React组件的类型

函数组件

特点:

  1. 简单快捷,没有this、没有state数据、没有生命周期
  2. 没有this/state,降低组件的耦合性,组件的复用性与扩展性更强
  3. 适用于展示类型"视图组件"

结构:

function App(){
    retuen(<div>...</div>)
}
export defaule App;

 快捷键:ffc+tab

类组件

特点: 有this,state,生命周期,适用于集中处理数据的"容器组件"

结构:

import React, { Component } from "react";

class  extends Component {
  constructor(props) {
    super(props);
  }
  state = {  }
  render() { 
    return (<div>...</div>);
  }
}
 
export default ;

快捷键:imrc+tab ccc+tab

组件的数据状态state 

定义状态 state={num:5}

改变状态 this.setState({num:10})


猜你喜欢

转载自blog.csdn.net/TeAmo__/article/details/123934054