Wondering what’s next for npm?Check out our public roadmap! »

    @vue/babel-sugar-composition-api-render-instance

    1.2.4 • Public • Published

    @vue/babel-sugar-composition-api-render-instance

    Ported from luwanquan/babel-preset-vca-jsx by @luwanquan

    Babel syntactic sugar for replacing this with getCurrentInstance() in Vue JSX with @vue/composition-api

    Babel Compatibility Notes

    • This repo is only compatible with Babel 7.x

    Usage

    Install the dependencies:

    # for yarn: 
    yarn add @vue/babel-sugar-composition-api-render-instance
    # for npm: 
    npm install @vue/babel-sugar-composition-api-render-instance --save

    In your .babelrc:

    {
      "plugins": ["@vue/babel-sugar-composition-api-render-instance"]
    }

    However it is recommended to use the configurable preset instead.

    Details

    This plugin automatically replaces this in setup() with getCurrentInstance(). This is required for JSX to work in @vue/composition-api as this is not available in setup()

    Input:

    defineComponent({ 
      setup() {
        return () => <MyComponent vModel={a.b} />
      }
    })

    Output (without @vue/babel-sugar-composition-api-render-instance):

    defineComponent({
      setup() {
        return () => <MyComponent model={{
          value: a.b,
          callback: $$v => {
            this.$set(a, "b", $$v);
          }
        }} />
      }
    })

    Output (with @vue/babel-sugar-composition-api-render-instance):

    import { getCurrentInstance } from "@vue/composition-api";
     
    defineComponent({
      setup() {
        const __currentInstance = getCurrentInstance();
     
        return () => <MyComponent model={{
          value: a.b,
          callback: $$v => {
            __currentInstance.$set(a, "b", $$v);
          }
        }} />
      }
    })

    Keywords

    none

    Install

    npm i @vue/babel-sugar-composition-api-render-instance

    DownloadsWeekly Downloads

    839,456

    Version

    1.2.4

    License

    MIT

    Unpacked Size

    4.51 kB

    Total Files

    3

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar