Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@vue/babel-sugar-functional-vue

vuejs3.8mMIT1.4.0

Babel syntactic sugar for functional components

readme

@vue/babel-sugar-functional-vue

Syntactic sugar for functional components.

Babel Compatibility Notes

Usage

Install the dependencies:

# for yarn:
yarn add @vue/babel-sugar-functional-vue
# for npm:
npm install @vue/babel-sugar-functional-vue --save

In your .babelrc:

{
  "plugins": ["@vue/babel-sugar-functional-vue"]
}

However it is recommended to use the configurable preset instead.

Details

This plugin transpiles arrow functions that return JSX into functional components but only if it's an uppercase variable declaration or default export:

// Original:
export const A = ({ props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>
export const b = ({ props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>
export default ({ props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>

// Result:
export const A = {
  functional: true,
  render: (h, {
    props,
    listeners
  }) => <div onClick={listeners.click}>{props.msg}</div>
}
export const b = ({ props, listeners }) => <div onClick={listeners.click}>{props.msg}</div>
export default {
  functional: true,
  render: (h, {
    props,
    listeners
  }) => <div onClick={listeners.click}>{props.msg}</div>
}

changelog

1.3.1 (2022-07-21)

other

Bug Fixes

  • relax the vue peer dependency version requirement (8b5f023)

1.3.0 (2022-07-06)

other

Features

  • add importSource option (#284) (abffc65)
  • rework the compositionAPI option of the preset to support Vue 2.7 (e7d094e)

1.2.4 (2020-10-27)

other

Bug Fixes

  • composition-api-render-instance: store currentInstance in variable for render instance (#168) (a3525bf)

1.2.3 (2020-10-20)

other

Bug Fixes

1.2.2 (2020-10-17)

other

Bug Fixes

  • functional-vue & inject-h should traverse before JSX plugin (#166) (8969609), closes #165

1.2.1 (2020-10-16)

other

Bug Fixes

  • add composition-api packages to dependencies (cd9db9f)

1.2.0 (2020-10-16)

other

Features

  • add @vue/composition-api support (#142) (ecc6ed6)
  • allow prior babel plugins to traverse JSX tree throughly, close #86 (b49fa8a)
  • change all sugar plugins to work without pre-traversing the Program (0943580)

1.1.2 (2019-11-09)

other

Bug Fixes

1.1.1 (2019-10-11)

other

Bug Fixes

  • v-model: create non-existent properties as reactive (05b9b3a)

1.1.0 (2019-07-23)

other

Bug Fixes

  • support for .passive modifier (01177c8)

1.0.0 (2019-05-08)

other

Bug Fixes

  • Support props with underscore, close #55 (852481c)

1.0.0-beta.3 (2019-03-22)

other

Bug Fixes

  • filter out jsx comments in getChildren (7f0c84c), closes #46
  • fix incorrect repository urls (99380b3)

1.0.0-beta.2 (2019-01-11)

other

Bug Fixes

  • remove extraneous peer deps (29414a7)
  • Trim whitespaces properly, fix #37 (54c75ee)

    Features

  • Support root-level attributes, close #32 (96b182c)

1.0.0-beta.1 (2018-12-25)

other

Bug Fixes

  • Add events at the begining of argument list (0604214)
  • Add staticClass as root attribute (cd3bab1)
  • Do not trim all spaces (c5ebfac)
  • Fix failing tests (21213df)
  • Force html & svg tags to always be treated as string tags (12a311e)
  • proper support for camelCase (a903610)
  • Support camelCase directives (6a43377)
  • Support default export in functional component (7e6f893)
  • throw an error if v-model is used with a string (82d6bcb)

    Features

  • Add release utilities (4bb22fb)

  • add support for argument and modifiers for directives (0085b8f)
  • change the syntax for argument and modifiers (b1c8036)
  • Event modifiers for v-on (cef09bb)
  • implement babel preset (1137c1d)
  • Support vModel in kebab-case components (dc0e29f)
  • Treat string as component if declared in scope (51ca488)