# vuera **Repository Path**: miluu/vuera ## Basic Information - **Project Name**: vuera - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-21 - **Last Updated**: 2021-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # vuera [![Build Status](https://travis-ci.org/akxcv/vuera.svg?branch=master)](https://travis-ci.org/akxcv/vuera) [![Coverage Status](https://coveralls.io/repos/github/akxcv/vuera/badge.svg?branch=master)](https://coveralls.io/github/akxcv/vuera?branch=master) > **NOTE:** This project is [looking for a maintainer](https://github.com/akxcv/vuera/issues/97)! Use [Vue] components in your [React] app: ```jsx import React from 'react' import MyVueComponent from './MyVueComponent.vue' export default props =>
``` Or use [React] components in your [Vue] app: ```vue ``` ## Use cases - 👨‍👩‍👧 Using both Vue and React in one app - 🏃 Migrating from React to Vue or from Vue to React ## Installation Install with yarn: ```sh $ yarn add vuera # or with npm: $ npm i -S vuera ``` You can also try the library out via [unpkg]: ```html ``` ## Usage ### Vue in React - Preferred usage The preferred way to use Vue inside of a React app is to use a Babel plugin. Add `vuera/babel` to `plugins` section of your `.babelrc`: ```json { "presets": "react", "plugins": ["vuera/babel"] } ``` Now, just use your Vue components like you would use your React components! ```jsx import React from 'react' import MyVueComponent from './MyVueComponent.vue' export default () => (

I'm a react component

) ``` ### React in Vue - Preferred usage The preferred way to use React inside of a Vue app is to use a Vue plugin. ```js import Vue from 'vue' import { VuePlugin } from 'vuera' Vue.use(VuePlugin) /* ... */ ``` Now, use your React components like you would normally use your Vue components! ```vue ``` If you configure options in the root instance of a `Vue`, those will not be passed by default to Vue instances within React components. So, for example an i18n or a store instance option configured at the top level is not available in the children Vue components wrapped in React components. To fix this, configure `vueInstanceOptions` similar to: ```js import Vue from 'vue' // import other plugins or modules import { config } from 'vuera' // Vue.use(...) config.vueInstanceOptions = { plugin: thePlugIn, store: myStore }; ``` **NOTE**: If you're using Vue < 2.4, you *must* pass all props to your React components via a special prop called `passedProps`: ```vue ``` ### Vue in React - without the Babel plugin If you don't want to use the Babel plugin, you still have two ways of using this library. 1. Use a wrapper component: ```jsx import React from 'react' import { VueWrapper } from 'vuera' import MyVueComponent from './MyVueComponent.vue' export default () => (
) ``` 2. Or use the HOC API: ```jsx import React from 'react' import { VueInReact } from 'vuera' import MyVueComponent from './MyVueComponent.vue' export default () => { const Component = VueInReact(MyVueComponent) return (
) } ``` ### React in Vue - without the Vue plugin If you don't want to use the Vue plugin, you still have two ways of using this library. 1. Use a wrapper component: ```vue ``` 2. Use the HOC API: ```vue ``` ## FAQ (I think) ### Are children supported? Yes. You can pass children from React to Vue and back as you usually would. React (children will go to the default slot of the Vue component): ```jsx import React from 'react' import MyVueComponent from './MyVueComponent.vue' export default props =>
Hello there!
``` Vue: ```vue ``` ### What's the performance? How fast/slow is it compared to pure React / Vue? I don't know, but the benchmark is coming. Stay tuned. ## Articles [Integrating React and Vue Components in One Application](https://x-team.com/blog/react-vue-component-integration/) by [@josephrexme](https://github.com/josephrexme) ## License [MIT](http://opensource.org/licenses/MIT) [react]: https://facebook.github.io/react [vue]: https://vuejs.org [unpkg]: https://unpkg.com