【问题标题】:Rewriting a VueJS Component using JSX and the Render Function使用 JSX 和渲染函数重写 VueJS 组件
【发布时间】:2017-10-16 03:17:18
【问题描述】:

我有以下 VueJS 组件:

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 格式来做到这一点。

有什么想法吗?

谢谢

【问题讨论】:

标签: vue.js vuejs2 jsx vue-component


【解决方案1】:

只需安装babel-plugin-transform-vue-jsx 我没有什么可以添加到配置中。它直接起作用。

【讨论】:

    【解决方案2】:

    听起来你的 Webpack 并没有为转译设置正确的 babel 插件。

    浏览器本身不支持 JSX,像 Webpack 这样的模块捆绑器会将浏览器不理解的 JSX 转换(从 JSX 转换为 Javascript)到浏览器可以理解的格式.

    这将是您需要采取的第一步,并且可能是您所缺少的。

    【讨论】:

    • 据我所知,我已经安装了所有必需的插件并正确配置了 webpack。我的问题是弄清楚我应该如何正确地用 JSX 编写渲染函数。
    • 这是我配置 webpack、package.json 和 babelrc 文件的方式:webpackbin.com/bins/-KkID1VIBnJlCzOuwTQj
    • 我无法正确加载您的配置
    • 它对我来说很好。
    猜你喜欢
    • 2017-05-22
    • 2020-06-16
    • 2021-05-28
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 2021-02-12
    • 2021-11-09
    • 1970-01-01
    相关资源
    最近更新 更多