时间:2021-05-26
基于目前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. 生命周期
虽然生命周期名不一样,但是差不多有对应的
4. 处理事件
框架 说明 React 相应的事件都加到了组件的实例方法上 Vue 设计上比较好,处理事件都加在一个methods对象下面,方便查找,更直观
// reactclass FrontendMagazine { clickme () { // xxxx }}// vue{ name: 'frontend-magazine', methods: { clickme () { // xxx } }}5. 组件错误捕获
框架 说明 React componentDidCatch Vue errorCaptured
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
原理步骤
转化前后对比
如何同时写开源的react和vue组件
如果你的组件想要被大家开源使用,作者这里有一个小提议,可以边写react组件,边试着转化成vue组件,如果转化有问题,试着改代码,尽可能跨框架支持,这样你写的组件肯定可以在react和vue项目中同时使用。
总结
以上所述是小编给大家介绍的React 组件转 Vue 组件的命令写法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
vue创建高阶组件的实现不够react优雅,但那是vue和react的设计思想导致的。在react中一切都是函数,而在vue中,组件最终都是函数,但在开发时可以
本文主要跟大家分享了ES6下React组件的写法示例,下面来一起看看详细的介绍:一:定义React组件classHelloextendsReact.Compon
关于react与vue中的key之前在学习react的时候,常常遇到循环渲染组件时会提示需要在循环组件中加上key属性,比如有一组列表:importReact,
使用父组件向子组件传值的方式1,抽出的组件以及写法2,注册使用的父组件以及传值,父组件returnimages补充知识:vue如何抽取公共组件并全局注册项目的抽
calendarvue日期选择组件一个选择日期的vue组件基于vue2.0+vuex原本是想找这样的一个组件的,查看了vuex后,发现vuex的写法还不是基于2