react小结

React

React 是一个用于构建用户页面的JavaScript库,专注于视图,实现组件化开发。

React 特点

1.声明式设计 −React采用声明范式,可以轻松描述应用。
2.高效 −React通过对DOM的模拟,最大限度地减少与DOM的交互。
3.灵活 −React可以与已知的库或框架很好地配合。
4.JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。
5.组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。
6.单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。

组件化概念

将一个复杂的页面分成若干个独立的组件,每个组件都包含自己的逻辑和样式,在将这些组件组合成一个完整的页面。这样的操作即减少了逻辑复杂度又实现了代码的重用。

组件的定义可分为2种

函数声明组件
类声明组件

函数组件

1.函数就是组件
2.组件名称规定首字母大写,小写认为是一个标签元素
3.组件在元素中应用<组件名/> or <组件名></组件名>
4.组件传递的属性或方法(<组件名 title={“222”}>)会把传入的属性包成一个对象({title:“222”})传给这个组件函数props,在组件内取值时就是,{props.title}

function School(props){
	return <h1>学校{props.color} {props.size}</h1>
}
let data = {color:'red',size:100}
ReactDom.render(<div>
<div><School color="red"  size="100"></School></div>
<div><School color="green" ></School></div>
<div><School  {...data}></School></div>
</div>,window.root);

函数组件会在内部添加一个render方法,把函数的返回结果作为render方法的返回结果

let Clock = ()=>{
	return <h1>当前时间是:{new Date().toLocaleString()}</h1>
}
Clock.render = function(){
Clock();
}

类组件

类组件在渲染时会默认调用render方法

import React from "react";
import ReactDOM from "react-dom";
class Clcok extends React.Component{
	render(){
		return <h1>哈哈</h1>
	}
}

类组件内有状态和钩子函数
需要继承React.Component
React.Component 是一个基类,有生命周期,更改状态的方法
继承React.Component 之后才算是一个React类。

import React from "react";
import ReactDOM from "react-dom";
class Clcok extends React.Component{
	constructor(props){//会接受组件传入的属性or方法
		super(props);
		//this.state 是规定死的,表示给这个组件生命状态
		this.state={ }
	}
	// state={}
	render(){
		return <h1>哈哈</h1>
	}
}

JSX 语法

JSX 是一种JavaScript和XML混写的语法,是JavaScript的扩展。

基本结构

render(
  <div>
    <div>
      <div>content</div>
    </div>
  </div>,
  document.getElementById('example')
);

React 生命周期(钩子函数)

componentDidMount(){} 当前组件挂在完成,在render方法加载完之后执行
unmountComponentAtNode() 卸载组件

//用法
	ReactDOM.unmountComponentAtNode(window.root)

componentWillUnmount(){} 将要卸载,在此阶段中删掉所有的监听和卸载异步方

componentDidMount(){
		this.itemer = setInterval=()=>{
			//this.setState 可以导致页面刷新
			this.setState({time:new Date().toLocalString()})
		}
	}
	componetWillUnmount(){
		clearInterval(this.timer);
	}

React路由的使用

cnpm i --save react-router-dom

创建一个新的router.js文件,并在App.js中导入这个路由文件
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值