1. @vue/babel-sugar-functional-vue
Babel syntactic sugar for functional components
@vue/babel-sugar-functional-vue
Package: @vue/babel-sugar-functional-vue
Created by: vuejs
Last modified: Thu, 25 Aug 2022 11:55:05 GMT
Version: 1.4.0
License: MIT
Downloads: 3,585,959
Repository: https://github.com/vuejs/jsx

Install

npm install @vue/babel-sugar-functional-vue
yarn add @vue/babel-sugar-functional-vue

@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>
}

RELATED POST

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Enhancing Vue.js Development: Harnessing the Potential of Vue-Loader

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Simplify Data Validation in Vue.js: A Step-by-Step Guide to Using Regex

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Troubleshooting Made Easy: Common Issues and Solutions with vue-loader Without vue-cli

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Optimizing Webpack 4 with Vue CLI 3: Disabling the Cache-Loader

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin

Step-by-Step Guide: How to Add a Function to Your Vuex Plugin