Blogger Information
Blog 29
fans 0
comment 0
visits 19736
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
条件渲染v-if v-show、计算属性和监听器
手机用户1576673622
Original
1091 people have browsed it

1.条件渲染

v-if 与 v-show
v-if:v-if 指令和原生 js 中的 if 语句的功能是一样的,作为条件约束,执行哪些功能。同样有作为单分支和多分支条件的语句。

  1. <!-- 单分支 -->
  2. <p v-if="flag">{{msg}}</p>
  3. <button
  4. @click="flag = !flag"
  5. v-text="tips = flag ? `隐藏` : `显示`"
  6. ></button>
  7. <!-- 多分支 -->
  8. <p v-if="point > 1000 && point < 2000">{{grade[0]}}</p>
  9. <p v-else-if="point >= 2001 && point < 3000">{{grade[1]}}</p>
  10. <p v-else-if="point >= 3001 && point < 4000">{{grade[2]}}</p>
  11. <p v-else-if="point >= 4000">{{grade[3]}}</p>
  12. <p v-else>{{grade[4]}}</p>

v-show:v-show 指令和 v-if 指令的功能差不多,区别最大的一点是使用 v-dom 的元素,在 dom 树加载完成之后就会存在,只是显示不显示的问题,而 v-if 语句则不一样,它是根据条件判断,然后再从 vue 中渲染到页面上。v-show 的用处是可以定时的显示一些准备好的东西。好处是比起 v-if 来说,v-show 是本来就存在的 dom 元素,页面不会进行多次的渲染刷新。
功能:v-show 是在 dom 元素创建之后就存在了,只是显示不显示的决定在你,你可以设置什么时候显示,这样在一些活动倒计时的情况中,就直接可以更换页面,而不显得突兀,也不需要页面刷新。

键盘修饰符

  1. <script>
  2. const vm = new Vue({
  3. el: document.querySelector(".app"),
  4. data() {
  5. return {
  6. list: [],
  7. };
  8. },
  9. // 事件方法
  10. methods: {
  11. submit(ev) {
  12. // console.log(ev.key);
  13. // console.log(ev.target.value);
  14. // if (ev.key === "Enter") {
  15. // this.list.unshift(ev.target.value);
  16. // ev.target.value = null;
  17. // }
  18. // 使用了键盘修饰符: enter
  19. this.list.unshift(ev.target.value);
  20. ev.target.value = null;
  21. },
  22. },
  23. });
  24. </script>

2.计算属性

计算属性使用 computed 声明,本质上就是访问器属性,最终会和 data 合并,所以不要和 data 中已有属性重名。

  1. <div class="app">
  2. <p>
  3. 数量:
  4. <!-- <input
  5. type="number"
  6. v-model="num"
  7. style="width: 5em"
  8. min="0"
  9. @change="calc"
  10. /> -->
  11. <input type="number" v-model="num" style="width: 5em" min="0" />
  12. </p>
  13. <p>单价: {{price}} 元</p>
  14. <!-- <p>金额: {{num * price}} 元</p> -->
  15. <!-- <p>金额: {{res}} 元</p> -->
  16. <!-- <p>金额: {{res}} 元</p> -->
  17. <!-- 计算属性,本质上就是原生的访问器属性 -->
  18. <p>金额: {{amount}} 元</p>
  19. </div>
  20. <script>
  21. const vm = new Vue({
  22. el: document.querySelector(".app"),
  23. data() {
  24. return {
  25. num: 0,
  26. price: 50,
  27. res: 0,
  28. };
  29. },
  30. // 计算属性: 最终会和data合并,所以不要和data中已有属性重名
  31. // 使用computed声明
  32. computed: {
  33. // amount() {
  34. // return this.num * this.price;
  35. // },
  36. // 访问器属性有getter/setter
  37. // 计算属性默认是getter
  38. amount: {
  39. get() {
  40. return this.num * this.price;
  41. },
  42. set(value) {
  43. console.log(value);
  44. if (value > 1000) this.price = 40;
  45. },
  46. },
  47. },
  48. });
  49. vm.amount = 1001;
  50. </script>

侦听器
侦听器属性使用 watch 声明,它侦听的是某一个属性的值的变化,它的属性名与 data 中要监听的属性同名。侦听器属性更加注重的是实时性,但是它没有计算属性灵活.

Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post