@vue/babel-helper-vue-jsx-merge-props

WebJar for @vue/babel-helper-vue-jsx-merge-props

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

vue__babel-helper-vue-jsx-merge-props
Last Version

Last Version

1.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

@vue/babel-helper-vue-jsx-merge-props
WebJar for @vue/babel-helper-vue-jsx-merge-props
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/vuejs/jsx

Download vue__babel-helper-vue-jsx-merge-props

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/vue__babel-helper-vue-jsx-merge-props/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>vue__babel-helper-vue-jsx-merge-props</artifactId>
    <version>1.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/vue__babel-helper-vue-jsx-merge-props/
implementation 'org.webjars.npm:vue__babel-helper-vue-jsx-merge-props:1.0.0'
// https://jarcasting.com/artifacts/org.webjars.npm/vue__babel-helper-vue-jsx-merge-props/
implementation ("org.webjars.npm:vue__babel-helper-vue-jsx-merge-props:1.0.0")
'org.webjars.npm:vue__babel-helper-vue-jsx-merge-props:jar:1.0.0'
<dependency org="org.webjars.npm" name="vue__babel-helper-vue-jsx-merge-props" rev="1.0.0">
  <artifact name="vue__babel-helper-vue-jsx-merge-props" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='vue__babel-helper-vue-jsx-merge-props', version='1.0.0')
)
libraryDependencies += "org.webjars.npm" % "vue__babel-helper-vue-jsx-merge-props" % "1.0.0"
[org.webjars.npm/vue__babel-helper-vue-jsx-merge-props "1.0.0"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

Babel Preset JSX

Configurable Babel preset to add Vue JSX support. See the configuration options here.

Compatibility

This repo is only compatible with:

Installation

Install the preset with:

npm install @vue/babel-preset-jsx @vue/babel-helper-vue-jsx-merge-props

Then add the preset to babel.config.js:

module.exports = {
  presets: ['@vue/babel-preset-jsx'],
}

Syntax

Content

render() {
  return <p>hello</p>
}

with dynamic content:

render() {
  return <p>hello { this.message }</p>
}

when self-closing:

render() {
  return <input />
}

with a component:

import MyComponent from './my-component'

export default {
  render() {
    return <MyComponent>hello</MyComponent>
  },
}

Attributes/Props

render() {
  return <input type="email" />
}

with a dynamic binding:

render() {
  return <input
    type="email"
    placeholder={this.placeholderText}
  />
}

with the spread operator (object needs to be compatible with Vue Data Object):

render() {
  const inputAttrs = {
    type: 'email',
    placeholder: 'Enter your email'
  }

  return <input {...{ attrs: inputAttrs }} />
}

Slots

named slots:

render() {
  return (
    <MyComponent>
      <header slot="header">header</header>
      <footer slot="footer">footer</footer>
    </MyComponent>
  )
}

scoped slots:

render() {
  const scopedSlots = {
    header: () => <header>header</header>,
    footer: () => <footer>footer</footer>
  }

  return <MyComponent scopedSlots={scopedSlots} />
}

Directives

<input vModel={this.newTodoText} />

with a modifier:

<input vModel_trim={this.newTodoText} />

with an argument:

<input vOn:click={this.newTodoText} />

with an argument and modifiers:

<input vOn:click_stop_prevent={this.newTodoText} />

v-html:

<p domPropsInnerHTML={html} />

Functional Components

Transpiles arrow functions that return JSX into functional components, when they are either default exports:

export default ({ props }) => <p>hello {props.message}</p>

or PascalCase variable declarations:

const HelloWorld = ({ props }) => <p>hello {props.message}</p>
org.webjars.npm

vuejs

Versions

Version
1.0.0