代码之家  ›  专栏  ›  技术社区  ›  Maksim Nesterenko

Vue JSX事件处理程序

  •  0
  • Maksim Nesterenko  · 技术社区  · 7 年前

    是否有文档部分阐明了为什么我应该将camel case用于单击处理程序,而将kebab用于输入(以及其他所有内容)?但不适用于单击,仅适用于单击 onClick 作品。

    实际上,我注意到对于公共输入,两个选项都可以正常工作 on-input onInput .

    const MyJSXInput = {
      props: {
        value: {
          type: Boolean,
          required: true
        },
        clickHandler: {
          type: Function,
          required: true
        },
        inputHandler: {
          type: Function,
          required: true
        },
      },
      // eslint-disable-next-line no-unused-vars
      render(createElement) {
        const { value, clickHandler, inputHandler } = this.$props
        return (
          <input onClick={clickHandler} on-input={inputHandler} type="checkbox" value={value} />
        )
      }
    }
    

    不知道它是否重要,但是我使用这个组件作为另一个组件的呈现函数属性。像这样(全部简化):

        renderProp: () => (
          <MyJSXInput 
            value={someValue}
            click-handler={this.someHandlerClick}
            input-handler={this.someHandlerInput}
          />
        )
    

    最后一个部分是这样的:

      render(h) {
        return (
          <div>
            {this.$props.renderProp(this)}
          </div>
        )
      }
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   Maksim Nesterenko    7 年前

    在此处找到一条信息:

    https://github.com/vuejs/babel-plugin-transform-vue-jsx#difference-from-react-jsx

    然而,我仍然不知道为什么kebab case适用于输入事件。