babel-preset-vca-jsx
Support for automatic import of createElement as h and setup functional component syntax and setup template refs
Feature
- Automatically import
createElement as h when writing JSX
- The functional component syntax of the
setup() by default
const Hello = (prop, ctx) => {
const state = ref('hello world');
return () => <h1>{state.value}</h1>;
};
- Allocating template refs with
JSX on the render function returned by setup()
const Hello = createComponent({
setup() {
const root = ref(null);
watch(() => console.log(root.value)); // <h1>...</h1>
/*
return () => h('h1', {
ref: root
}, 'hello world!');
*/
return () => <h1 ref={root}>hello world!</h1>
}
});
- Fixed @vue/babel-sugar-v-model@1.1.2 calling
this in setup()
Before compiling
import { ref } from '@vue/composition-api';
const Hello = (prop, ctx) => {
const state = ref('Hello World!');
return () => (
<h1>{state.value}</h1>
);
};
After compilation
import { ref, createElement as h } from '@vue/composition-api';
const Hello = {
setup: (prop, ctx) => {
const state = ref('Hello World!');
return () => {
return h('h1', state.value);
};
}
};
Prerequisite
Project with @vue/composition-api and @vue/cli-plugin-babel installed
How to use?
-
Install
npm install babel-preset-vca-jsx --save-dev
-
Config babel.config.js
module.exports = {
presets: [
"vca-jsx",
"@vue/cli-plugin-babel/preset"
]
};
Note