react相关知识

在这里插入图片描述

< br />换行符

==React Router 4.0 ==
react-router-dom 基于浏览器的插件,封装了react-router,所以不要用react-router插件
4.0版本不需要路由配置,都是组件化
(在文档里可以发现 路由是直接写在渲染的< div>下面的)

< NavLink> 主要使用在菜单导航里 ,是< Link>的一个特定版本,会在匹配上当前的url的时候给已经渲染的元素添加参数,组件的属性有
activeClassName(string):设置选中样式,默认值为active
activeStyle(object):当元素被选中时,为此元素添加样式
exact(bool):为true时,只有当导致和完全匹配class和style才会应用
strict(bool):为true时,在确定为位置是否与当前URL匹配时,将考虑位置pathname后的斜线
isActive(func)判断链接是否激活的额外逻辑的功能

HashRouter:带# ,根路由用#进行嵌套 #/…/…
BrowserRouter:不带#

4.0增加了render()方法
<Route path="/admin" render={()=>
	<Admin>
		<Route path='/admin/home' component={Home} />

<Link to =({ pathname:'/three/7'})>Three #7 </Link>
link 里的to也可以指向对象
一个基本location对象
{ pathname:'/', search:'',hash:'',key:'abc123',state:{}}

<Route path="/three/:number"/>
取number值:this.props.match.params.number

Router里的switch
<Switch>
	<Route path='url' component={..} />
	<Route path='url' component={..} />
	<Route path='url' component={..} />
</Switch>
如果去掉switch匹配成功后会继续向下匹配
有switch只会匹配那个相同的第一个

4.0 <Route>标签可以写在任何一个地方 外面也可以包其他标签

Redirect重定向
(路径重定向)
<Redirect to="/admin/home" />

未匹配时
<Switch>
	<Route path="/" exact component={Home} />
	<Route component={NoMatch} />//如果未匹配成功就跳转这个路由
</Switch>

Demo1
pages/route-demo/

  • route1
    • about.js
    • Home.js
    • main.js
    • topic.js
Home.js
import .....
render(){
	return(
	<HashRouter>
		<div>
			<ul>
				<li>
					<Link to="/"> Home </Link>
				</li>
				<li>
					<Link to="/about"> about</Link>
				</li>
				<li>
					<Link to="/topics"> topics</Link>
				</li>
			</ul>
			<hr/>
			//4版允许多个路由同时加载 想不拆分 需要加exact属性精准匹配
			//switch也可以 匹配到第一个就不往后走了
			<Route exact={true} path="/" component={Main}></Route>//注意component小写
			<Route path="/about" component={About}></Route>
			//如果是/about/topic 则/about那一个路由也需要加精准匹配
			<Route path="/topics" component={Topic}></Route>
		</div>
	</HashRouter>
	)
}

src/index.js
....
ReactDOM.render(<Home />,.....);

==Demo2==
如果要把路由这块单独抽取出来到route.js,把home.js里相关路由的东西删掉
点击Home.js里的link在router.js里匹配路由

Home.js
import .....
render(){
	return(
	
		<div>
			<ul>
				<li>
					<Link to="/"> Home </Link>
				</li>
				<li>
					<Link to="/about"> about</Link>
				</li>
				<li>
					<Link to="/topics"> topics</Link>
				</li>
			</ul>
			<hr/>
			{this.props.children}//把路由匹配的组件展现在这个地方
		</div>
	
	)
}


router.js
import React from 'react'
import ...
import {HashRouter as Router,Route,LinK }from 'react-router-dom'//as 起了几个别名
import Home from './Home'
export default class IRouter extends React.Component{
	render(){
		return(
			<Router>
				<Home>
				<Route path="/about" component={About}></Route>
			//如果是/about/topic 则/about那一个路由也需要加精准匹配
			<Route path="/topics" component={Topic}></Route>
				</Home>
			</Router>
		)
	}
}

src/index.js
....
ReactDOM.render(<router />,.....);

还可以进行路由嵌套
main.js
...
return(
	<div>
		<Link to="/main/a">嵌套路由</Link>
		</hr>
		{this.props.children}
	</div>
	);

router.js
...
			<Router>
				<Home>
				<Route exact={true} path="/" render={()=>
				<Main>
					<Route path="/a" component ={About}></Route>
				</Main>
				}></Route>//注意不要加大括号在箭头函数那里 会只执行大括号里面的代码而不返回了
			<Route path="/topics" component={Topic}></Route>
				</Home>
			</Router>

==获取动态路由id==
/:value

{this.props.match.params.value}

== github 使用教程 ==
https://www.cnblogs.com/zlxbky/p/7727895.html

react请求函数
https://blog.csdn.net/daxiazouyizou/article/details/79773307
fetch / axios

命令式开发
DOM 节点挂载等

声明式开发:
react
可以与其它框架并存

react要求单向数据流
父能传给子值 但子不可改变父值
那么如何用父组件的值呢?
子组件调用传递父值的方法

视图层框架

函数式编程

DIFF算法 different算法
两个虚拟DOM比对的方式
比较差异

调用setstate数据发生变化,setstate是异步的,
同层比对,
把已被修改的节点下所有的DOM节点删除,对整个原始DOM进行替换
key值比对:不要用index做KEY值

React 介绍
facebook开源的javascript库

MVC 模型(model)-视图(view)-控制器(controller)
Model,View,ViewModel,ViewModel负责视图逻辑

MV框架 :MV模式主要解决的问题就是 View代码难以维护的问题。
MV模式将View中的逻辑分离出去,形成一个弱逻辑的易于维护的视图。
MV
中的*是Model和View的桥梁,负责保持Model和View的同步。

特点:
声明式编码
组件化编码
高效 - DOM diff算法 最小化页面重绘
单向数据流

Babel解析ES6语法(由于许多浏览器不支持

webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle

编程式实现:要知道where what how
声明式实现:知道where what 不需要知道how

Yarn
优势:速度快
安装版本统一安全
更简洁的输出
更好的语义化

React生命周期
getDefaultProps 初始化一个props
getInitialState 初始化当前组件状态
componentWillMount组件加载之前调用的方法
render
componentDidMount组件DOM插入完之后调用的方法
componentWillReceiveProps父组件属性传递时调用的方法
shouldComponentUpdate调用更新
componentWillUpdate组件更新之前
componentDidUpdate更新之后
componentWillUnmount组件销毁之前

<div style={{}}> //这个两个大括号 里面的大括号是一个对象
同理:
var style ={backgroundColor:'red'}
return (<div style={style}>) 即可显示红色背景
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React ECharts 是一个 React 组件库,用于显示 ECharts 图表。ECharts 是一个基于 JavaScript 的开源可视化库,可用于创建各种交互式图表和地图。React ECharts 将 ECharts 的强大功能与 React 的灵活性和可重用性相结合,使用户能够轻松创建复杂的可视化效果。 React ECharts 的主要功能包括以下内容: 1. 提供了一组 React 组件,用于显示 ECharts 图表; 2. 支持各种类型的 ECharts 图表,如折线图、柱状图、饼图、散点图、雷达图等; 3. 支持自定义 ECharts 图表的各个部分,如标题、图例、数据系列、坐标轴等; 4. 提供了丰富的配置选项,使用户能够轻松地对图表进行定制; 5. 支持响应式布局,使图表能够自适应不同的屏幕尺寸; 6. 提供了丰富的交互功能,如数据区域缩放、数据区域漫游、数据提示、点击事件等。 React ECharts 的使用非常简单,只需要引入相应的组件和配置即可。例如,要显示一个柱状图,只需要编写以下代码: ```jsx import ReactEcharts from 'echarts-for-react'; const option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAxis: { type: 'value' }, series: [{ data: [820, 932, 901, 934, 1290, 1330, 1320], type: 'bar' }] }; function MyChart() { return ( <ReactEcharts option={option} /> ); } ``` 以上代码将在页面上显示一个包含七个柱子的柱状图。通过调整配置选项,可以轻松实现各种复杂的图表效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值