web-dev-qa-db-fra.com

Modifier la propriété de classe CSS avec Vue.js

J'utilise Vue.js et je veux changer une propriété de classe CSS. Le code HTML qui utilise la classe est le suivant:

<div class="fillTimerBar"></div>

Et le code CSS:

.fillTimerBar { width: 100%; height: 8px; }

De là, je veux changer la propriété de classe width en utilisant une propriété computed du composant Vue.

Quelle serait la bonne façon, le cas échéant?

9
Alex

Vous devez utiliser v-bind:style directive.

var vm = new Vue({
  el: '#example',
  data: {
     width:'200px'
  },
  computed: {
    computedWidth: function () {
      return this.width;
    }
  },
  methods: {
    changeWidth: function (event) {
      this.width='100px';
    }
  }
})
#myDiv{
  background-color:red;
  height:200px;
}
<script src="https://unpkg.com/[email protected]/dist/vue.js"></script>

<div id="example">
  <div id="myDiv" v-bind:style="{ width: computedWidth }"></div>
  <button v-on:click="changeWidth()">Change</button>
</div>
16