Code Monkey home page Code Monkey logo

vue-to-react's Introduction

vue-to-react

NPM version NPM downloads CircleCI donate

This works for both Vue 2 and Vue 3.

Install

yarn add @egoist/vue-to-react

Usage

import React from 'react'
import { render } from 'react-dom'
import toReact from '@egoist/vue-to-react'

const VueComponent = {
  data() {
    return {
      count: 0
    }
  },

  render(h) {
    return h(
      'button',
      {
        on: {
          click: () => this.count++
        }
      },
      [this.count]
    )
  }
}

const ReactComponent = toReact(VueComponent)

render(<ReactComponent />, document.getElementById('app'))

Passing Props

By default we pass all props from React to Vue:

const Counter = toReact({
  props: ['initialCount'],
  render(h) {
    return h('button', {}, [this.initialCount])
  }
})

const App = <Counter initialCount={0} />

However you can customize how the props are passed to Vue with the passProps option:

toReact(VueComponent, {
  // Only pass `initialCount` prop
  passProps: props => ({ initialCount: props.initialCount }),
  // Or disable props
  passProps: false
})

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

@egoist/vue-to-react © EGOIST, Released under the MIT License.
Authored and maintained by EGOIST with help from contributors (list).

github.com/egoist · GitHub @EGOIST · Twitter @_egoistlily

vue-to-react's People

Contributors

egoist avatar dependabot[bot] avatar

Stargazers

 avatar Vaniship avatar Violet avatar  avatar klpalace avatar Igor Preston avatar Leonardo J. Caballero G. avatar Robert Nubla avatar IMP lab avatar Mr Torn avatar MOZGIII avatar Mujahid Anuar avatar Kingboo avatar Moon Witch avatar leo. avatar c0rb1n avatar  avatar aymonyu avatar Dominik Pschenitschni avatar F__B__ avatar neolitec avatar YasushiKobayashi avatar Mozy Okubo avatar  avatar hiro avatar  avatar Sazzad Hossain avatar Naoto Wada avatar Andrei Luca avatar zhouxinyong avatar cuilei avatar Felipe Baltor avatar Valentin HV avatar Steve avatar Tenvi avatar 一口獠牙的小甜甜 avatar Shoichi Aizawa avatar David Domkář avatar Marcelo Dias avatar Sébastien Chopin avatar jarzzzi avatar  avatar  avatar bckd00r avatar DevilTea avatar Muratva Stark avatar Baki avatar Jhonny Neciosup avatar Mehmet Can Kanpolat avatar Hanif Dwy Putra S avatar huoxiangdong avatar  avatar Nikita avatar Tri Vo Khac avatar Zeyu Xiong avatar Jy avatar fisker Cheung avatar Surya avatar Lucas Yang avatar Florian Wendelborn avatar Németh Gábor avatar leeho avatar Arthur Denner avatar Jay avatar ahwgs avatar Shawn Yee avatar Giovane Cardoso avatar Lim avatar beet avatar  avatar  avatar zouhang avatar Raihan Muhammad avatar Cristopher avatar HsuChing(Hyman) avatar ram avatar Hana avatar  avatar Satya Wikananda avatar wineSu avatar Harlan Wilton avatar shj avatar Shinobu Hayashi avatar Roy Lin avatar Joe_Sky avatar yuki.t avatar 伊撒尔 avatar vanestone avatar Mingyang Han avatar Chriest Yu avatar Sung Jeon avatar hazem osama ibrahim avatar leiyourong avatar Emanuel Gonçalves avatar Jake avatar runner avatar quroni avatar David Dias avatar Capi Etheriel avatar Greg Babiars avatar

Watchers

James Cloos avatar  avatar

vue-to-react's Issues

Changing module from ejs to mjs broken storybook builds with v1.2.0

When building Vue storybook, with recent changes started getting below error as vue-to-react is dependency in @storybook/addon-docs

 ERROR  Failed to compile with 2 errors                                                                                                                                                                                            11:37:40 AM

 error  in ./node_modules/@egoist/vue-to-react/dist/index.mjs

Can't import the named export 'createApp' from non EcmaScript module (only default export is available)

 error  in ./node_modules/@egoist/vue-to-react/dist/index.mjs

Can't import the named export 'h' from non EcmaScript module (only default export is available)

Suggested change
import * as Vue from 'vue'
to
import Vue from 'vue'
at https://github.com/egoist/vue-to-react/blob/master/src/index.ts#L2

@egoist Let me know if this is fine, i can raise PR for same

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.