从vue到react

1. class组件/函数组件

class组件
  1. 生命周期在16.4发生了变更
  2. 可以用setState更改状态值
  3. 有三种获取ref的方式,详情见2
函数组件hooks
  1. useState
    在这里插入图片描述

  2. useEffect
    在这里插入图片描述!在这里插入图片描述

  3. useRef
    在这里插入图片描述

  4. useContext
    在hooks下 如何跨组件传数据
    实现步骤:
    1.使用creatContext创建context对象
    2.在顶层使用provider提供数据
    3.在底层组件通过usecontext函数获取数据

  5. useCallback

  6. useMemo

2. 获取当前ref的方法

函数组件

useRef
写法和creatRef类似

类组件
  1. 字符串(已废弃)
// 组件ref和dom一样
this.refs['input1'].value
this.refs.input1.value
<input ref='input1'></input>
  1. 回调函数(使用最多)
    组件渲染后,即componentDidMount后
    组件卸载后,即componentWillMount后,此时,入参为null
    ref改变后
// input1即dom
<input ref={e => this.input1 = e}></input>
// 扩展
// 当前组件更新时,console会执行两次
// 第一次null,第二次才是dom,不影响功能
<input ref={e => {this.input1 = e;console.log(e)}}></input>
  1. createRef()(最推荐)
// 容器
// input1.current即dom
input1 = React.createRef();
<input ref={this.input1}></input>

3. router

一个错误解决
关于react-router有三个库web/native/any,any虽然支持范围比较广,但api更复杂,所以在这里还是用web的专用库react-router-dom。
使用react18+react-dom18+react-router-dom6时,用antd总是报错
在这里插入图片描述
后面做出以下改动就ok了
在这里插入图片描述
关于插槽内容
组件内this.props.children可以获取 < myLink >顶顶顶顶< /myLink > 里的值,相当于vue里的插槽

拓展运算符
当父组件传过来特别多的属性,可以直接用…this.props

antd Link和NavLink
NavLink有个属性activeClassName可以设置点击后的className

Route匹配方式
react-route-dom5默认是前缀匹配,给Route加exact={true}代表精准匹配

Switch包含Route
表示找到第一个匹配的就停止

当没找到对应资源或路由
Webpack会直接返回public里index.html页面,index.html里的资源不要写相对路径,因为路由为多级结构时,刷新页面,资源请求会失败,因为默认把多级结构也当成域名了。

Redirect重定向
代表所有匹配不上时

<Redirect to="/home"/>

路由两种写法/三种方式

  1. 按钮式写法
    在这里插入图片描述
  2. 编程式写法
    this.$props.history.push(path, state)

路由withRoute
react-router-dom5里的withRoute方法让非路由组件拥有props.history

import { NavLink, Route, withRouter } from 'react-router-dom';
export default withRoute(Home); // Home为组件名

HashRouter和BrowserRouter
在这里插入图片描述

4. 生命周期

注意:只有类组件才有生命周期
reactV16.3之前
在这里插入图片描述

V16.3后
在这里插入图片描述

5. Redux

6. 解决变量赋值异步问题

7. img src写法

Vue写法
  1. 引入public中的img
    在这里插入图片描述
  2. 引入assets中的img
    在这里插入图片描述
  3. css中background属性通过url()函数引入路径
    在这里插入图片描述
React写法

react src 里面引入图片不支持直接写图片的路径,展示不出来

  1. import模块写法
import imgURL from './../images/photo.png';
<img src={imgURL } />
  1. require写法
<img src={require('./../images/photo.png')} />

参考: https://blog.csdn.net/weixin_43814775/article/details/118280854

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue-React组件库的实现原理主要是通过将Vue组件转化为React组件,或将React组件转化为Vue组件,从而实现在VueReact项目中同时使用的目的。 具体来说,Vue-React组件库的实现原理有以下几种方式: 1. 使用Vue-React转换器:Vue-React转换器是一个将Vue组件转换为React组件的工具,可以实现在React项目中使用Vue组件。转换器的实现原理是将Vue组件的模板转换为React组件的JSX语法,再在React项目中引入转换后的React组件。这种方式需要注意Vue组件的语法和React组件的语法差异,以及转换器的兼容性和性能问题。 2. 使用Vue-React组件库:Vue-React组件库是一个同时支持VueReact的UI组件库,可以直接在VueReact项目中使用。组件库的实现原理是针对VueReact两种框架分别提供了组件的实现,通过封装和兼容处理,实现在两种框架中的使用。这种方式需要注意组件的兼容性和性能问题,以及组件库的选择和使用方法。 3. 使用Web Components:Web Components是一种通用的组件规范,可以在各种前端框架中使用。VueReact都支持Web Components规范,因此可以使用Web Components实现在两种框架中共享组件。这种方式需要注意组件的规范和兼容性问题,以及Web Components的使用方法和浏览器支持情况。 需要注意的是,使用Vue-React组件库的方式相对简单,而且在实现原理上比较清晰,因此在实际开发中比较常用。但是,不同的Vue-React组件库实现方式略有不同,需要根据具体组件库的文档进行使用和配置。同时,也需要注意不同框架之间的差异和兼容性问题,避免出现不可预期的错误。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值