登录  /  注册
博主信息
博文 45
粉丝 0
评论 0
访问量 33431
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
VUE条件渲染, 计算属性和侦听器
咸鱼老爷
原创
498人浏览过

条件渲染

  • v-if:元素知否添加到页面中
    为true时添加,为false时不添加

    1. <p v-if='flag'>{{msg}}</p>
    2. <script>
    3. const vm = new Vue({
    4. el: '#app',
    5. data() {
    6. return {
    7. msg: "晚上好",
    8. flag: true,
    9. }
    10. }
    11. })
    12. </script>

    点击显示与不显示小案例

    1. <p v-if='flag'>{{msg}}</p>
    2. <button @click="flag=!flag" v-text="tips=flag?`隐藏`:`显示`"></button>
    3. <script>
    4. const vm = new Vue({
    5. el: '#app',
    6. data() {
    7. return {
    8. msg: "晚上好",
    9. flag: true,
    10. tips: '隐藏',
    11. }
    12. }
    13. })
    14. </script>

    多分支条件

    v-if v-else-if v-else

    1. <p v-if="score > 100 && score < 2000">{{level[0]}}</p>
    2. <p v-else-if="score >= 2001 && score < 3000">{{level[1]}}</p>
    3. <p v-else-if="score >= 3001 && score < 4000">{{level[2]}}</p>
    4. <p v-else>{{level[3]}}</p>
    5. <script>
    6. const vm = new Vue({
    7. el: '#app',
    8. data() {
    9. return {
    10. msg: "晚上好",
    11. flag: true,
    12. tips: '隐藏',
    13. score: 10000,
    14. level: ["铜牌", "银牌", "金牌", "王牌"],
    15. }
    16. }
    17. })
    18. </script>

    • v-show:元素是否显示出来(元素已经在dom中存在)

      1. <p v-show='status'>这是v-show</p>
      2. <script>
      3. const vm = new Vue({
      4. el: '#app',
      5. data() {
      6. return {
      7. status: true,
      8. }
      9. }
      10. })
      11. </script>

      计算属性

      计算属性,本质上就是原生的访问属性
      计算属性最终会和data合并,所以不要和data中已有属性重名

      1. <div id="app">
      2. <p>数量: <input type="number" v-model='num' min="0"></p>
      3. <p>单价:{{price}}元</p>
      4. <p>金额:{{amout}}元</p>
      5. </div>
      6. <script>
      7. const vm = new Vue({
      8. el: '#app',
      9. data() {
      10. return {
      11. num: 0,
      12. price: 50,
      13. res: 0
      14. }
      15. },
      16. computed: {
      17. amout: {
      18. get() {
      19. return this.num * this.price
      20. },
      21. set(value) {
      22. console.log(value);
      23. if (value > 1000) {
      24. this.price = 40
      25. }
      26. }
      27. }
      28. }
      29. })
      30. vm.amout = 1001;
      31. </script>

      侦听器属性 watch

      侦听的是某一个属性的值的变化,它的属性名与data中要监听的属性同名

      1. <div id="app">
      2. <p>数量: <input type="number" v-model='num' min="0" :max='max'></p>
      3. <p>单价:{{price}}元</p>
      4. <p>金额:{{res}}元</p>
      5. </div>
      6. <script>
      7. const vm = new Vue({
      8. el: '#app',
      9. data() {
      10. return {
      11. num: 0,
      12. price: 50,
      13. res: 0,
      14. max: 100,
      15. }
      16. },
      17. watch: {
      18. num(newValue, oldValue) {
      19. console.log("new:" + newValue, 'old' + oldValue);
      20. // this.res = this.num * this.price
      21. this.res = newValue * this.price;
      22. //监听库存
      23. if (newValue >= 20) {
      24. this.max = newValue;
      25. alert('库存不足');
      26. }
      27. }
      28. }
      29. })
      30. </script>

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学