React跳路由的方式有哪些?
- Link或者NavLink
- js事件中跳路由,this.props.history.push({pathname:’路由地址’})
React中的Link和NavLink的区别是什么?
Link和NavLink默认渲染为a标签
<NavLink>是<Link>的一个特定版本,会在匹配上当前的url的时候给已经渲染的元素添加参数,借助该特性可以实现导航按钮高亮,而Link不会
React中跳路由传参的集中方式是什么?区别是什么?
- 动态路由传参,地址栏显示参数
- query传参,地址栏不显示参数,刷新页面,参数丢失
- state传参,地址栏不显示参数,刷新页面,参数不丢失
React-Router渲染组件的三种方式是什么?有什么区别?
component,支持react元素和回调函数两种写法
render,只支持回调函数的写法
children,只支持回调函数的写法
Redux的作用是什么?
集中管理应用程序的状态
react组件间通信
描述一下redux的数据流/工作流?
1.调用store.dispatch(action)
2.store调用reducer函数
3.根reducer把多个子reducer输出合并成一个单一的state树
4.store保存根reducer返回的完整state树
Redux的三大原则是什么?
1.单一数据源,整个应用的state被存储在唯一一个store中
2.State是只读的,唯一改变state的方法就是触发action
3.使用纯函数来修改state,为了描述action如何改变state,你需要编写reducer
React-redux的作用是什么?
1.react-redux将redux的dispath和state映射到react组件的props中,将react组件与redux真正连接起来,实现组件间的通信
2.降低了react组件和redux仓库的耦合性
3.当store中的数据改变时,使用到该数据的多个组件会立即更新,确保组件状态的统一
React的状态管理中间件有哪些?
redux-logger
redux-thunk
redux-saga
redux-promise
React函数式组件和类组件的区别?
1.函数式组件一般用于比较简单的组件定义,类组件用于复杂的组件定义
2.函数组件是一个纯函数,它接收一个props对象返回一个react元素;而类组件需要去继承React.Component并且创建render函数返回react元素
3.函数组件中的this是undefined,类组件中的this指向的是当前组件的实例对象
4.函数组件没有生命周期和状态state,而类组件有
5.函数组件ReactDOM.render的过程:随后调用该函数,将赶回的虚拟DOM转为真实DOM,随后呈现在页面中,类组件中ReactDOM.render的过程:new出该组件的实例,并通过该实例调用原型上的render方法,将render返回的虚拟DOM转为真实的DOM,随意偶呈现在页面中