官术网_书友最值得收藏!

  • Vue.js 2.x by Example
  • Mike Street
  • 260字
  • 2021-07-02 20:00:27

Showing and hiding Vue content

Along with v-if for showing and hiding content, you can also use the v-show="" directive. v-show is very similar to v-if; they both get added to the HTML wrapper and can both accept the same parameters, including a function.

The difference between the two is v-if alters the markup, removing and adding HTML elements as required, whereas v-show renders the element regardless, hiding and showing the element with inline CSS styles. v-if is much more suited to runtime renders or infrequent user interactivities as it could potentially be restructuring the whole page. v-show is favorable when lots of elements are quickly coming in and out of view, for example, when filtering!

When using v-show with a method, the function needs to return just a true or false. The function has no concept of where it is being used, so we need to pass in the current person being rendered to calculate if it should be shown.

Create a method on your Vue instance titled filterRow() and inside, set it to return true:

      filterRow(person) {
return true;
}

The function takes one parameter, which is the person will we pass in from though from the HTML. In your view, add the v-show attribute to the <tr> element with filterRow as the value while passing in the person object:

      <table>
<tr v-for="person in people" v-show="filterRow(person)">
<td>{{ person.name }}</td>
...

As a simple test, return the isActive value to the person. This should instantly filter out anyone who is inactive, as their value will return false:

      filterRow(person) {
return person.isActive;
}
主站蜘蛛池模板: 嘉祥县| 黄浦区| 丰镇市| 永兴县| 田阳县| 惠水县| 会宁县| 阜平县| 赤城县| 定州市| 喀喇| 雷波县| 尉犁县| 枣庄市| 桐城市| 津市市| 太谷县| 申扎县| 铅山县| 金华市| 阿拉善左旗| 安达市| 淳化县| 定陶县| 宁夏| 城固县| 隆回县| 长顺县| 普格县| 家居| 大余县| 什邡市| 务川| 五常市| 隆昌县| 页游| 辉南县| 诸城市| 平度市| 镇巴县| 延安市|