在使用React组件中转 Vue 组件的命令写法有哪些?

本文先介绍两个框架的组件共性和不兼容的地方,再介绍react-to-vue的使用和原理,需要的朋友可以参考下

基于目前React和Vue比较火,开发react-to-vue 工具的目的是为了进一步提高组件的可复用用性,让组件复用不仅仅局限在一个框架里面

简介

对于react-to-vue工具,转化的是基本的react component,而不是全部的react应用。而基本react component的定义更多是基于props和state来渲染的组件,其中也可以包括发请求。

本文先介绍两个框架的组件共性和不兼容的地方,再介绍react-to-vue的使用和原理。在实际业务中,陆金所100多个的react基础业务组件,react-to-vue可以转化90%以上,变成vue组件。

立即学习“前端免费学习笔记(深入)”;

盘点两个框架的组件共性

1. props

// reactFrontendMagazine.propTypes = {  name: PropTypes.string}FrontendMagazine.defaultProps = {  name: 'FrontendMagazine'}// vue{  name: 'frontend-magazine',  props: {    name: {      type: String,      default: 'FrontendMagazine'    }  }}

登录后复制

2. 组件自有状态

框架 说明

React在初始化的时候,通过this.state = {xxx}来设置Vue通过data 返回函数来设置值,不同于react的state,vue是响应式

3. 生命周期

虽然生命周期名不一样,但是差不多有对应的

在使用React组件中转 Vue 组件的命令写法有哪些?在使用React组件中转 Vue 组件的命令写法有哪些?

4. 处理事件

框架 说明

React相应的事件都加到了组件的实例方法上Vue设计上比较好,处理事件都加在一个methods对象下面,方便查找,更直观

// reactclass FrontendMagazine {  clickme () {    // xxxx  }}// vue{  name: 'frontend-magazine',  methods: {    clickme () {      // xxx    }  }}

登录后复制

5. 组件错误捕获

框架 说明

ReactcomponentDidCatchVueerrorCaptured

6. jsx语法

react是基于jsx来写的,对于vue来说,虽然在好多场景下,可以使用template来写,但是vue也完全支持jsx语法的,对于本工具,也只是把react的jsx语法转换成vue支持的jsx

两个框架不兼容的地方

react在最新版本里面,有flagments的支持,允许根节点返回多个节点,目前没有看到vue支持的,还有就是在设计react组件的时候,使用了高阶,对于本工具,也是不支持的

react-to-vue工具

安装及使用

# installnpm install -g react-to-vue# usageUsage: rtv [options] file(react component)

登录后复制

Options:

 -V, --version     output the version number -o --output [string] the output file name -t --ts        it is a typescript component -h, --help      output usage information

登录后复制

 # demo

 rtv demo.js

原理步骤

对于输入的文件首先使用babylon来解析,生成ast

如果文件是typescript,会去掉相应的ts描述

对ast进行遍历,首先提取propTypes和defaultProps

根据组件类型,处理函数组件和类组件

在类组件里面,需要转换生命周期,state等信息

最后根据提取到的信息拼接成vue组件,通过prettier-eslint来美化

转化前后对比

在使用React组件中转 Vue 组件的命令写法有哪些? 

如何同时写开源的react和vue组件

如果你的组件想要被大家开源使用,作者这里有一个小提议,可以边写react组件,边试着转化成vue组件,如果转化有问题,试着改代码,尽可能跨框架支持,这样你写的组件肯定可以在react和vue项目中同时使用。

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

如何解决VUEX兼容IE上的报错问题(详细教程)

在Node.js中使用readline如何实现逐行读取、写入文件内容

在Vuex中无法观察到值变化的解决方法是什么?

以上就是在使用React组件中转 Vue 组件的命令写法有哪些?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2750231.html

(0)
上一篇 2025年3月8日 05:33:15
下一篇 2025年3月3日 18:44:23

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论