今天所学心得、笔记

1、条件渲染

  1. <div class="app">
  2. <p>您的充值金额是:{{money}}</p>
  3. <!-- v-if, v-else-if多分支 -->
  4. <!-- <p v-if="money > 1000">{{grade[0]}}</p>-->
  5. <p v-if="money >= 1000 && money < 2000">{{grade[0]}}</p>
  6. <p v-else-if="money >= 2001 && money < 3000">{{grade[1]}}</p>
  7. <p v-else-if="money >= 3001 && money < 4000">{{grade[2]}}</p>
  8. <p v-else-if="money >= 4001 && money < 5000">{{grade[3]}}</p>
  9. <p v-else-if="money > 5000">{{grade[4]}}</p>
  10. <p v-else>{{grade[5]}}</p>
  11. <button
  12. @click="status = !status"
  13. v-text="status ? `月初发工资了...` : `月底又没钱了...`"
  14. ></button>
  15. <!-- v-show: -->
  16. <p v-show="status">{{msg}}</p>
  17. </div>
  18. <script src="vue.js"></script>
  19. <script>
  20. const vm = new Vue({
  21. el: '.app',
  22. data() {
  23. return {
  24. tips: "月初发工资了...",
  25. money: 5001,
  26. msg: "明天请大家吃饭...",
  27. status: true,
  28. grade: [
  29. "普通会员",
  30. "超级会员",
  31. "白金会员",
  32. "终身会员",
  33. "王者会员",
  34. "您还不是会员,请充值...",
  35. ],
  36. }
  37. }
  38. })
  39. </script>

2、计算属性

  1. <div class="app">
  2. <p>商品数量:<input v-model.lazy="num" type="text"></p>
  3. <p>商品价格:{{price}}</p>
  4. <hr>
  5. <p>您输入的商品数量是:{{num}}</p>
  6. <p>商品价格是:{{price}}</p>
  7. <p>商品总价是:{{amount}}</p>
  8. </div>
  9. <script src="vue.js"></script>
  10. <script>
  11. const vm = new Vue({
  12. el: '.app',
  13. data() {
  14. return {
  15. price: 100,
  16. num: 0,
  17. }
  18. },
  19. computed: {
  20. // 计算属性,第 1 种写法, 只有get()方法------------------
  21. // amount() {
  22. // return this.price * this.num
  23. // }
  24. // 计算属性,第 2 种写法, 可以有get(), set()两个方法-----
  25. amount: {
  26. get() {
  27. return this.price * this.num;
  28. },
  29. set(value) {
  30. console.log(value);
  31. //模拟给商品打6折
  32. if(value > 1000) this.price=60;
  33. }
  34. }
  35. }
  36. });
  37. vm.amount = 99999;
  38. </script>

3、侦听器

  1. <div class="app">
  2. <p>商品数量:<input v-model="num" type="number" min="0" max="100" style="width: 3rem"></p>
  3. <p>商品价格:{{price}}</p>
  4. <hr>
  5. <p>您输入的商品数量是:{{num}}</p>
  6. <p>商品价格是:{{price}}</p>
  7. <p>商品总价是:{{res}}</p>
  8. </div>
  9. <script src="vue.js"></script>
  10. <script>
  11. const vm = new Vue({
  12. el: '.app',
  13. data() {
  14. return {
  15. price: 100,
  16. num: 0,
  17. res: 0,
  18. }
  19. },
  20. watch: {
  21. // 侦听的是某一个属性的值的变化,它的属性名与data中要监听的属性同名;
  22. //这里侦听的是data 中,num 值的变化
  23. num(newVal, oldVal) {
  24. console.log("老值是:" + oldVal + " ---" + " 新值是:" + newVal);
  25. // this.res = this.num * this.price;
  26. this.res = newVal * this.price;
  27. if(newVal >= 20) {
  28. document.querySelector("input").max = newVal;
  29. alert("库存不足,请补货......")
  30. }
  31. }
  32. },
  33. })
  34. </script>

更多相关文章

  1. 第22章 0114-购物车实战与ES6模块化技术,学习心得、笔记(jQuery实
  2. grid属性实例演示
  3. 【转】windowSoftInputMode属性详解
  4. SystemProperties與Settings.System
  5. android2.1之后appwidget的一些问题
  6. xml文件内引用资源
  7. 自定义ViewGroup控件 textView 的ellipsize end 属性无效
  8. RelativeLayout相对布局介绍及属性介绍
  9. Android(安卓)UI中的自定义style和theme以及AlertDialog

随机推荐

  1. Android(安卓)学习大纲
  2. 代码详解Python多线程、多进程、协程
  3. 【决战西二旗】|理解STL Map使用和原理
  4. 【决战西二旗】|理解STL vector原理
  5. 当我们走出三本的大门,现实给我们上了一课
  6. Android网络请求框架AsyncHttpClient (an
  7. 动画:面试官问我插入排序和冒泡排序哪个更
  8. COVID-19每日数据|04-06
  9. COVID-19每日数据|04-08
  10. Android: 八种燃爆了的菜单效果