如何在iview组件中使用jsx

Posted webhmy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在iview组件中使用jsx相关的知识,希望对你有一定的参考价值。

最近选用的框架iview表单组件的render写法让人有点不习惯,尤其是在写比较复杂的逻辑的时候,还是感觉模板式的写法比较方便且可读性较强。而render函数除了支持配置写法外,还支持jsx的写法。由于之前有用过react,因此对jsx并不陌生,可以直接上手。

1、安装插件

安装插件:transform-vue-jsx
如果需要使用v-model还需要安装jsx-v-model
babelrc中配置

"plugins": [["import", {
    "libraryName": "iview",
    "libraryDirectory": "src/components"}],
    "transform-vue-jsx", "transform-runtime"],
  "env": {
    "test": {
      "presets": ["env", "stage-2"],
      "plugins": ["transform-vue-jsx", "transform-es2015-modules-commonjs", "dynamic-import-node"]
    }
  }

2、使用及注意事项

下面粘贴的代码是Table组件的columns的配置项,这里需要注意的有2点:
1、需要全局注册组件,如输入框组件不可以写成Input必须写成i-input
2、事件绑定:如点击事件需要携程onOn-click

{
            title: "关系名",
            key: "name",
            width: 180,
            render: (h, params) => {
              let { index, row } = params;
              return (
                <div>
                  {this.editShow && this.editIndex === index ? (
                    <span>
                      <i-input
                        placeholder="中文"
                        class="visual-name-input"
                        value={this.editRow.cnName}
                        onOn-blur={this.activeCellChange("cnName")}
                      />
                      <i-input
                        placeholder="英文"
                        class="visual-name-input"
                        value={this.editRow.name}
                        onOn-blur={this.activeCellChange("name")}
                      />
                    </span>
                  ) : (
                    <span
                      class="overflow"
                      title={`${row.cnName}(${row.name})`}
                    >{`${row.cnName}(${row.name})`}</span>
                  )}
                </div>
              );
            }
          }

以上是关于如何在iview组件中使用jsx的主要内容,如果未能解决你的问题,请参考以下文章

vue框架iview中Table动态表头可编辑内容的jsx写法

如何通过 VITE 在 Data() Vue 3 组件中使用 JSX/HTML 代码

如何在我的 ag-grid 单元格中放置一个 react jsx 组件

如何在vue项目中引入element ui组件iview组件

如何在vue项目中引入element ui组件iview组件

iview Table表格组件无法拆分单元格的解决思路