Vue.js/React/JSX:如何使用数据中的变量设置标签样式?

Vue.js/React/JSX: How to style a tag using a variable in data?

我有一个 html 元素 textarea_01,当我按下我的 button_01 时我想添加一个样式,它上面有一个 onClick 函数

myFunction: function(event) {
//some code that does something
};

因为我不能在 JSX 中使用指令,所以我认为以下方法会起作用:

<textarea id="textareaID" style={{resetWidth}}/>

并添加到 onClick 我的代码中使用的函数,因此它看起来像:

myFunction: function(event) {
var textarea = new Vue({
  el: '#textareaID',
  data: {
    resetWidth: 'width: 10px'
  }
})
//some code that does something
};

但它不起作用,WebStorm 告诉我

You are using the runtime-only build of Vue where the template compiler is not available

我该如何解决这个问题并完成我想做的事情,即在单击另一个元素后将 css 属性 添加到 html 元素?

注意:代码中使用了 Webpack 和 followin github。com/vuejs/babel-plugin-transform-vue-jsx 请注意,使用 JSX 时几乎不支持所有内置的 Vue 指令,唯一的例外是 v-show ,可以与 v-show={value} 语法一起使用。

您必须将 style 属性绑定到 Vue,因为您不能在标签属性上使用胡须:

<textarea id="textareaID" :style="resetWidth" />

因为您使用的是仅运行时 Vue 版本,您应该尝试其他方法。

去掉 textarea 的小胡子:

<textarea id="textareaID" />

mounted 挂钩或您想要的另一个 lifecycle hook 上使用 javascript 设置元素的样式:

myFunction: function(event) {
    var textarea = new Vue({
        el: '#textareaID',
        data: {
            resetWidth: 'width: 10px'
        },
        mounted: function () {
            this.$el.setAttribute("style", this.resetWidth);
        },
    })
    //some code that does something
};