You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
## @vue/babel-sugar-functional-vue
Syntactic sugar for functional components.
### Babel Compatibility Notes
- This repo is only compatible with Babel 7.x, for 6.x please use [vuejs/babel-plugin-transform-vue-jsx](https://github.com/vuejs/babel-plugin-transform-vue-jsx)
### Usage
Install the dependencies:
```sh# for yarn:
yarn add @vue/babel-sugar-functional-vue# for npm:
npm install @vue/babel-sugar-functional-vue --save```
In your `.babelrc`:
```json{ "plugins": ["@vue/babel-sugar-functional-vue"]}```
However it is recommended to use the [configurable preset](../babel-preset-jsx/README.md) 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:
```js// 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>}```
|