博客列表 >Vue:实例演示,v-if,v-for,v-model,v-bind,v-on,计算属性和侦听器属性

Vue:实例演示,v-if,v-for,v-model,v-bind,v-on,计算属性和侦听器属性

JiaJieChen
JiaJieChen原创
2021年04月21日 15:54:24932浏览

Vue:实例演示,v-if,v-for,v-model,v-bind,v-on,计算属性和侦听器属性

一.实例演示,v-if,v-for,v-model,v-bind,v-on

方法 含义
v-bind 自定义普通属性,快捷语法是一个”:”号
v-on 事件属性,快捷语法是一个”@”符
v-model 双向绑定
v-for v-for : (循环变量, 索引/键) in/of 数组/对象 :key
v-if 条件渲染流程判断,有单分支和多分支

①v-bind,自定义普通属性,快捷语法是一个”:”号

代码块

  1. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"> <body>
  2. <div class="box">
  3. <!-- v-bind指令,自定义普通属性,-->
  4. <p v-bind:style="style1">{{text}}</p>
  5. <hr />
  6. <!-- 快捷语法‘:’ -->
  7. <p :style="style2">{{text}}</p>
  8. </div>
  9. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  10. <script>
  11. new Vue({
  12. el: ".box",
  13. data: {
  14. text: "v-bind指令",
  15. style1: "color:red",
  16. style2: "background:blue",
  17. },
  18. });
  19. </script>
  20. </body

②v-on,事件属性,快捷语法是一个”@”符

代码块

  1. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  2. <script>
  3. new Vue({
  4. el: ".box",
  5. data: {
  6. text: "v-on指令",
  7. },
  8. //事件方法
  9. methods: {
  10. click1() {
  11. alert(this.text);
  12. d;
  13. },
  14. },
  15. });
  16. </script>

③v-model,双向绑定

代码块

  1. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  2. <script>
  3. new Vue({
  4. el: ".box",
  5. data: { data1: "祖国未来可期" },
  6. });
  7. </script>

④v-for,列表渲染

代码块

  1. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  2. <script>
  3. new Vue({
  4. el: ".box",
  5. data: {
  6. //渲染数组
  7. item: ["苹果", "香蕉", "西瓜", "葡萄"],
  8. //渲染对象
  9. hobby: { hobby1: "羽毛球", hobby2: "篮球" },
  10. //渲染对象数组
  11. user: [
  12. { id: 1, name: "小张", get: "20" },
  13. { id: 2, name: "小红", get: "20" },
  14. { id: 3, name: "小朱", get: "20" },
  15. ],
  16. },
  17. });
  18. </script>

⑤v-if,条件渲染

  • 单分支
    • 多分支

      代码块

      1. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
      2. <script>
      3. new Vue({
      4. el: ".box",
      5. data() {
      6. return {
      7. text: "点击显示或者隐藏",
      8. flase: "true",
      9. tips: "显示",
      10. name: ["大众会员", "黄金会员", "铂金会员", "钻石会员", "非会员"],
      11. point: 500,
      12. text: "点击加积分",
      13. };
      14. },
      15. });
      16. </script>

二.计算属性和侦听器属性

方法 含义
键盘修饰符 todolist
计算属性 conputed
侦听器属性 watch

①键盘修饰符:todolist

代码块

  1. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  2. <script>
  3. new Vue({
  4. el: ".box",
  5. data() {
  6. return {
  7. list: [],
  8. };
  9. },
  10. methods: {
  11. submit(ev) {
  12. //原生判断键盘添加文字
  13. // if (ev.key === "Enter") {
  14. // this.list.unshift(ev.target.value);
  15. // ev.target.value = null;
  16. // }
  17. //vue 键盘修饰符添加文字
  18. this.list.unshift(ev.target.value);
  19. ev.target.value = null;
  20. console.log(ev.key);
  21. },
  22. },
  23. });
  24. </script>

②计算属性computed

代码块

  1. <script>
  2. new Vue({
  3. el: ".box",
  4. data() {
  5. return {
  6. //双向绑定sum
  7. sum: "0",
  8. //单价是50
  9. money: 50,
  10. };
  11. },
  12. //计算属性computed
  13. computed: {
  14. amount: {
  15. //访问器属性get
  16. get() {
  17. //指当前sum变量*money变量
  18. return this.sum * this.money;
  19. },
  20. },
  21. },
  22. });
  23. </script>

③侦听器属性watch

代码块

  1. <script>
  2. new Vue({
  3. el: ".box",
  4. data() {
  5. return {
  6. //双向绑定sum
  7. sum: "0",
  8. //单价是50
  9. money: 50,
  10. res: 0,
  11. max: 100,
  12. };
  13. },
  14. //侦听器属性
  15. watch: {
  16. // 是用来监听某一个属性的值的变化,属性名要和data字段中的变量名相同
  17. // 例如,我要监听"num"变量的变化
  18. // sum(新的值,原来的值)
  19. sum(newVal, oldVal) {
  20. this.res = newVal * this.money;
  21. //监听库存量
  22. if (newVal > 20) {
  23. this.max = newVal;
  24. alert("库存不足");
  25. }
  26. },
  27. },
  28. });
  29. </script>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议