B站react学习视频

79 阅读3分钟

1.在Src下面建一个component文件夹来放所有组件,assets文件夹来放静态资源;

2.App.js中的render模板,利用jsx语法(JavaScript和HTML混用),这里是根组件,但一般把代码多写在子组件中(在component文件夹中写子组件),利用router来进行组件之间的挂载;组件名称首字母大写

3.在组件中的写法:import React,class 组件名称,export出去;然后在根组件中引用:import 子组件名称 from 文件路径;

//react定义数据
this.state={
    name:"张三",
    age:'30'
}
<p>hello react--{this.state.name}</p>{/*使用{this.state.name}进行对数据的调用*/}

5.用于父子组件传值,要在constructor里面写上props:

constructor(props){
    super(props);
}

6.引入图片三种方法: (调用本地图片) ①在顶部写上import 图片的名字 from 文件中的位置(相对路径),在render中调用用 <img src={图片的名字} />

②直接在代码中写: <img src = {require(‘图片的相对路径’)} /> (调用远程图片)

①直接 <img src=”图片的链接”/>

7.数组的循环:利用map

image.png

image.png 8.事件和方法(即函数) (1)定义方法:和构造函数constructor和render函数同级

(2)调用方法:直接this.方法名,注意不需要括号,加括号表示执行

(3)当需要获取数据时,①需要在调用方法时的后面加上.bind(this),使this的指向正确;②在构造函数中直接写上this.方法名.bind(this);④在方法中写上function箭头函数。

image.png (第三种使用最多) (4)改变数据,用this.setState({(不需要this)名字:”新的内容”})

(5)还有直接在方法里面改的

image.png

image.png 9.事件的用法:event.target来获取执行事件的DOM节点。

10.表单事件:(1)获取表单的值,用名称.target.value

11.键盘事件:(1)用名称.keyCode

12.双休数据绑定(MVVM)model,view VM:用onChange来改变

13.父子组件:

image.png 14.讲解defaultProps和propTypes(都是定义在子组件里面)

image.png 用法:

image.png 15.用axios获取服务器数据,fetch-jsonp插件的使用

image.png image.png

image.png 16.生命周期函数:

image.png

image.png

image.png 17.React路由

image.png

import { BrowserRouter as Router, Route, Link } from 'react-router-dom';

<Router>
    <div>
        <header className='title'>
            <Link to='/'>首页</Link>{/*Link to主要来做页面切换的*/}
            <Link to='/news'>新闻</Link>
            <Link to='/product'>产品</Link>
        </header>
        <Route exact path = '/' component={Home}/>
        <Route path = '/news' component={News}/>
        <Route path = '/product' component={Product}/>
    </div>
</Router>

要包含在一个根组件里面。 使用方法(总结一下):

image.png 18.React中的动态路由以及get传值

image.png

image.png

补充:在App.js中动态路由配置完成后,在需要跳转的页面写上链接:

<Link to={'/content/' + value.id}>{value.title}</Link>

循环操作:

this.state.list.map((value,key)=>{
    return (
        <li key={key}>
            <Link to={'/content/' + value.id}>{value.title}</Link>
        </li>
    )
})

React中get传值:

1)动态路由配置:<Route path = '/productcontent' component={ProductContent} />
(2)跳转操作:<Link to={'/productcontent?id='+value.id}>{value.title}</Link>

this.state.list.map((value,key)=>{
    return (
        <li key={key}>
            <Link to={'/productcontent?id='+value.id}>{value.title}</Link>
        </li>
    )
})

获取传值:

//要获取动态路由就在生命周期函数中获取
componentDidMount() {
    //获取动态路由的传值
    console.log(this.props);
}

写移动端:

image.png 像手机移动端一样显示三列布局:(1)display: flex; flex-wrap:wrap;width:33.3%; (2)width:33.3%;float:left; 19.react解析html

image.png 19.用JavaScript实现router的跳转

image.png

image.png 20.react-router路由的嵌套 (实现左侧菜单,右侧显示内容)

image.png 21.react-router实现路由的模块化

image.png (要放在import 的下面) 在render中进行循环:

image.png 在模块化中嵌套路由:

image.png

image.png 下面这种方法更模块化,是固定写法:

image.png

image.png 22.

image.png

image.png