2

Toggle Visibility in Vue

 1 year ago
source link: https://masteringjs.io/tutorials/vue/toggle-visibility
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Toggle Visibility in Vue

Oct 5, 2022

To conditionally display content on your Vue applications, you can use the v-show directive. The v-show directive toggles the display css property of the element.

const app = Vue.createApp({
  data: () => ({ display: true }),
  methods: {
    toggleText() {
      this.display = !this.display;
    }
  },
  template: `
  <div>
    <h1 v-show="display">Hello!</h1>
    <button @click="toggleText()">Toggle</button>
  </div>
  `
}).mount('#content');

Hello!

Using v-bind:class

The v-show directive works well for most cases. But if you want more fine-grained control over the CSS of how the element is hidden, like hiding the element using height: 0px; or opacity: 0;, you can use v-bind:class to conditionally add a class to your element.

.hide {
  display: none;
}
const example = Vue.createApp({
  data: () => ({ hide: true }),
  methods: {
    toggleText() {
      this.hide = !this.hide;
    }
  },
  template: `
  <div>
    <h1 v-bind:class="{hide:hide}">Hello!</h1>
    <button @click="toggleText()">Toggle</button>
  </div>
  `
}).mount('#example');

Using v-if

The v-if directive is similar to v-show. The major difference is that v-if unmounts the element from the DOM, while v-show simply hides it.

const example1 = Vue.createApp({
  data: () => ({ display: true }),
  methods: {
    toggleText() {
      this.display = !this.display;
    }
  },
  template: `
  <div>
    <h1 v-if="display">Hello!</h1>
    <button @click="toggleText()">Toggle</button>
  </div>
  `
}).mount('#example1');

Hello!

Keep in mind that v-if will fire the Vue mounted hooks of any component underneath the v-if when the v-if expression changes from false to true.


Vue School has some of our favorite Vue video courses. Their Vue.js Master Class walks you through building a real world application, and does a great job of teaching you how to integrate Vue with Firebase. Check it out!


More Vue Tutorials


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK