2017-05-16 40 views
0

我有以下VueJS组件:重写VueJS组件使用JSX和渲染功能

Vue.component('label-ui', { 
    props: ['type', 'size', 'color', 'position'], 

    template: ` 
     <div :class="[type, size, color, position]" class="ui labels"> 
      <slot></slot> 
     </div> 
    ` 

我想重写,这样我可以动态地设置模板的HTML标记 - 类似我做什么与此代码:

props: ['tag', 'attributes'], 
    render(createElement) { 
    return createElement(this.tag || 'div', {attrs: this.attributes || {}}, this.$slots.default); 
    } 

不过,我想使用JSX语法 - 因为这里指出:https://vuejs.org/v2/guide/render-function.html#JSX

我想不通,但是,如何将这种使用JSX形式上做吨。

任何想法?

感谢

+0

首先,你有没有[插件提到](https://github.com/vuejs/babel-plugin-transform-vue-jsx)? –

+0

是的,我已经安装了该插件 – Moshe

回答

0

它听起来并不像你已经得到的WebPack与设立transpiling正确的巴贝尔插件。

JSX本身不受浏览器支持,像Webpack这样的模块打包程序将从JSX(从浏览器无法理解)转换(从JSX转换为Javascript)为浏览器可以理解的格式。

这将是您需要采取的第一步,可能是你错过了什么。

+0

据我所知,我已经安装了所有必需的插件并正确配置了webpack。我的问题是弄清楚我应该如何正确使用JSX编写渲染函数。 – Moshe

+0

这是我如何配置我的WebPack,和的package.json文件babelrc:https://www.webpackbin.com/bins/-KkID1VIBnJlCzOuwTQj – Moshe

+0

我不能让你的配置加载正确 – JacobW