• vue零基础 基础教程P5第05节:计算属性与侦听器


    掌握了再看下面一集,去敲几遍。多敲就有了熟悉感。不找借口,是态度不端正,不够努力,别人学会敲了几遍,花了多少时间。去学就行了。只管现在努力,别的不管。每天学习给老板和师傅打卡。问优秀的人专业领域优秀的人求助。

    我很多不会。项目做不出来。

    看例子,做题目理解知识。和数学一样,从课后习题做起。这是什么?为什么这么写?这就是别人进步看课记笔记的原因。没学明白继续学。

    第一节:vue基础入门    讲的是什么?这是什么?用自己的话讲出来。进步了一点点也是进步。

    第2节:创建vue项目

    第3节:模板语法

    第4节:组件传值

    第5节:计算属性与侦听器

    第6节:生命周期钩子

    第7节:插槽,DOM操作。过滤器。

    第8节:表单

    第9节:数据交互

    第10节:路由

    第11节:ElementUI

    第12节:项目部署。

    能学到知识最重要。自己没有的,不要求别人有。萌没复习完,晚上睡不着,这就是初中的我,不学好才怪怪。当然能学好,只想学好。对自己负责。

    品性,价值观。保持小时候的生活习惯。不对的地方改善。认真学习就可以了。有礼貌。 

     外在不重要,乔布斯。智慧思维逻辑最重要。有智慧最重要。好好做事,别那么闲着。个人发展个人未来最重要。自己的价值自己内心心知肚明基金几斤几两知识技术墨水。

     每天复盘自己今天一天学了什么?你看到的好的环境都是你看不见的时候工人修剪出来的。不要找借口,认真去学就可以了。

    这个是什么知识 ?用自己的话怎么说出来呢?为什么这么做呢?怎么实现的呢?为什么把它取消了呢?这都是问题。一定是有原因的。为什么这么做的呢?

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     这个是怎么来的?为什么这么写?先当概念去背。

    代码:

     这是使用计算属性做的computed

    <template>
      <div>
        <div>
          <!-- 重置数量 点击之后数据一起变成0,同级传值实现 -->
        <button>重置数量</button>
        </div>
        <div>
          <ul>
            <li>香蕉 单价:2
              <!-- 数量用button控制数量的多少。绑定时间click -->
              <button @click="sub1">-</button>
              {{quantity1}}
              <button @click="add1">+</button>
              </li>
            <li>苹果 单价:5
              <button @click="sub2">-</button> {{quantity2}} <button @click="add2">+</button></li>
            <li>鸭梨 单价:3 <button @click="sub3">-</button> {{quantity3}} <button @click="add3">+</button></li>
          </ul>
        </div>
     
        <div>总价:{{totalPrice}}</div>
      </div>
    </template>
    
    <script>
    export default {
      data(){
        return{
          quantity1:0,
          quantity2:0,
          quantity3:0
        }
      },
      computed:{
        totalPrice(){
          return 2*this.quantity1+5*this.quantity2+3*this.quantity3;
        }
      },
      methods:{
        sub1(){
          if(this.quantity1>0){
            this.quantity1--
          }
        },
        add1(){this.quantity1++},
        sub2(){
          if(this.quantity2>0){
            this.quantity2--
          }
        },
        add2(){this.quantity2++},
        sub3(){
          if(this.quantity3>0){
            this.quantity3--
          }
        },
        add3(){this.quantity3++}
      }
    }
    </script>
    
    <style>
    
    </style>

    实现界面

     重置数据还没有实现。应该是同级传值。我看一下同级传值怎么做的?熟悉了就明白了。用click事件可以做。用数组可以做。

    <template>
      <div>
        <div>
          <!-- 重置数量 点击之后数据一起变成0 -->
        <button @click="changeData">重置数量</button>
        </div>
        <div>
          <ul>
            <li>香蕉 单价:2
              <!-- 数量用button控制数量的多少。绑定时间click -->
              <button @click="sub1">-</button>
              {{quantity1}}
              <button @click="add1">+</button>
              </li>
            <li>苹果 单价:5
              <button @click="sub2">-</button> {{quantity2}} <button @click="add2">+</button></li>
            <li>鸭梨 单价:3 <button @click="sub3">-</button> {{quantity3}} <button @click="add3">+</button></li>
          </ul>
        </div>
     
        <div>总价:{{totalPrice}}</div>
      </div>
    </template>
    
    <script>
    export default {
      data(){
        return{
          quantity1:0,
          quantity2:0,
          quantity3:0
        }
      },
      computed:{
        totalPrice(){
          return 2*this.quantity1+5*this.quantity2+3*this.quantity3;
        }
      },
      methods:{
        sub1(){
          if(this.quantity1>0){
            this.quantity1--
          }
        },
        add1(){this.quantity1++},
        sub2(){
          if(this.quantity2>0){
            this.quantity2--
          }
        },
        add2(){this.quantity2++},
        sub3(){
          if(this.quantity3>0){
            this.quantity3--
          }
        },
        add3(){this.quantity3++},
        // 添加的点击事件
      changeData(){
        this.quantity1=0,
        this.quantity2=0,
        this.quantity3=0
      }
      }
    }
    </script>
    
    <style>
    
    </style>

     



     

     totalPrice(){}是个函数,函数名就是变量。这个就是计算变量。computed里写的就是计算变量。

    必须一样,不一样去哪儿读取数据。

     做的项目作业:这是使用计算属性做的。computed属性

    <template>
      <div>
        <h1>计算属性computed:{}和侦听器属性watch:{}</h1>
        <div>单价:{{price}}</div>
        <div>
          数量:
          <!-- 数量这边就会有按钮控制,绑定点击事件 -->
          <button @click="sub">-</button>
          {{quantity}}
          <button @click="add">+</button>
          </div>
        <div>折扣:{{discount}}</div>
        <div>总价:{{totalPrice}}</div>
      </div>
    </template>
    
    <script>
    export default {
      data(){
        return{
          price:79,
          quantity:0,
          discount:0.5
          // totalPrice:0
        }
      },
      computed:{
        // 计算的方法  计算方法里面是计算变量,计算的结果返回给计算变量,然后在html中被使用。
        totalPrice(){
          return this.price*this.quantity*this.discount;
        }
      },
      // 写方法的methods属性。自己找时间去消化吸收才行。
    methods:{
      sub(){
        if(this.quantity>0){
          this.quantity--
        }    
      },
      add(){    
        this.quantity++
      }
    }
    }
    </script>
    
    <style></style>

     

     代码 

     




    使用侦听器的做法如下:

    <template>
      <div>
        <h1>计算属性computed:{}和侦听器属性watch:{}</h1>
        <div>单价:{{price}}</div>
        <div>
          数量:
          <!-- 数量这边就会有按钮控制,绑定点击事件 -->
          <button @click="sub">-</button>
          {{quantity}}
          <button @click="add">+</button>
          </div>
        <div>折扣:{{discount}}</div>
        <div>总价:{{totalPrice}}</div>
      </div>
    </template>
    
    <script>
    export default {
      data(){
        return{
          price:79,
          quantity:0,
          discount:0.5,
           // 声明变量
          totalPrice:0
    }
      },
      computed:{
        // 计算的方法  计算方法里面是计算变量,计算的结果返回给计算变量,然后在html中被使用。
        // totalPrice(){
        //   return this.price*this.quantity*this.discount;
        // }
      },
      // 侦听器属性
      watch:{
        // 侦听器 看变化的数据quantity,这个val就是变化的quantity,启动quantity的函数方法。
        quantity(val){
          // console.log(val);
          // this.totalPrice=this.price*this.quantity*this.discount;
          this.totalPrice=this.price*val*this.discount;
    
        }
      },
      // 写方法的methods属性。自己找时间去消化吸收才行。
    methods:{
      sub(){
        if(this.quantity>0){
          this.quantity--
        }    
      },
      add(){    
        this.quantity++
      }
    }
    }
    </script>
    
    <style></style>

    运行结果

     







     一般情况下用计算属性更多。

     一点点小的进步也是进步。当下努力。

    别人七年前也不厉害,时间积累。努力积累。

    先把工作定下来再说吧。一年时间泡在公司学代码。两年,我不知道。那就努力。弄明白知识。

    【晓舟报告】从零开始学前端-Vue基础教程  适合小白学习的前端开发系列教程,之Vue.js篇。

     知识智慧最稀少


     
    老师有数据交互的server.js和App.vue两个文件么,可以发一下么
    2
    最全(资料+视频+训练)https://www.bilibili.com/read/cv16492256
    2022-05-19 10:46
     
     
     
    大佬啥时候更新vuex和webpack相关的视频呀,催更催更
    全(资料+视频+训练)https://www.bilibili.com/read/cv16492256
    相见恨晚 兜兜转转浪费了不少时间
    2021-03-19 23:11
     
    eepTong
    重点突出,内容很适合新手来学,等差不多了再看文档,感谢晓舟老师....
    晓舟报告
    不客气~~O(∩_∩)O哈哈~
    2021-03-19 18:29
     
    回复 @晓舟报告 :大佬 vue p3的课后题能不能发给视频啊,实在是敲不出来啊
     
    看了不少Vue教程,这个是最简洁粗暴的。感谢up主[2021][牛年]
    2021-03-07 17:05
     
    可以请教一个问题吗
    2021-12-08 22:03
     
    满脑子都
    晓舟老师讲得太符合我的胃口,一上来就有“烂大街”的购物车(不是,逃),学的过程挺快乐的,遇到不会的就查啊搜啊什么的。对了,第九节数据交互的代码,我已经上传到github了,有需要的小伙伴可以自取,地址https://github.com/Chenchuanze123/Vue-tutorial/blob/main/hello-koa/app.js另外我还上传了一些晓舟老师讲得比较重要的一些demo,欢迎大家前来交流!
    2022-02-06 22:49
     
    对了还跟着晓舟老师的视频,写了一篇Vue的基础教程,放在自己的博客网站上了,写的也比较通俗易懂,希望对大家有用[嗑瓜子]https://c-f-y.gitee.io/2022/01/26/Vue%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B/
    2022-02-06 22:53
     
    回复 @太上道之 :哇 写的这个博客看起来很好看耶 而且写的vue教程也很用心 感谢~
     
    共8条回复, 点击查看
    我感觉最前面要讲一下MVVM
    2022-01-23 17:13
     
     
     
    求vuex
    2022-01-12 23:29
     
    这个有讲连接数据库吗1
    p12 : 修改.env.production和.env.development文件后必须手动重新 npm run server才行
    2021-12-26 17:34
     
     
     
    想问一下P9,我这里每次发post put delete请求都会发两次,第一次是options,第二次才是真实请求,为啥啊?up视频不会
    2021-12-24 21:49
     
    我也想问,我卡在这里一晚上了
    2022-03-04 00:10
     
     

    2021-12-10 10:37
     
     
    up主能不能把你的ElementUI的代码文件发出来啊
    2021-11-03 15:57
     
     
     
    感觉看这个视频学到了好多
    2021-08-31 13:33
     
     
    koa2-cors失效了,而且跨域也失败了 哎
    2021-08-23 18:06
     
     
    谢晓舟老师,自学vue第一天。
    2021-08-19 14:25
     
    可以请教一个问题吗
    2021-12-08 22:02
     
     
    请问Kua2-cors 一直是跨域怎么解决
    2021-08-10 21:42
     
     
    不会弹吉他的up不是好程序员!商务v:xiaozhoubaogao
    充电

    视频选集

    (6/12)
     
    自动连播
    • 30:10
    • 25:14
    • 28:58
    • 34:38
    • 16:04
    • 14:36
    • 28:41
    • 18:37
    • 19:15
    • 31:45
    • 31:25
  • 相关阅读:
    无向图判断割点
    C
    连通图 求至少有给几个点信息才能传遍全图,至少添加几条边才能使全图联通
    线段树区间更新(set暴力)
    A
    辗转相除法(数学推理)
    Python List index()方法
    Python List extend()方法
    Python List count()方法
    Python List append()方法
  • 原文地址:https://www.cnblogs.com/effortandluck/p/16412163.html
Copyright © 2020-2023  润新知