博客列表 >Vue入门:条件判断和循环、计算和监听属性和声明周期函数

Vue入门:条件判断和循环、计算和监听属性和声明周期函数

李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰原创
2021年01月19日 14:51:11951浏览

Vue分支的用法

1.v-for中in和of的区别:(item,index)of arr常用来遍历数组,(item,key,index) in Obj常用来遍历对象,作用相同,且在使用v-for遍历时必使用:key来绑定唯一标识(防止vue重渲染DOM时计算出错),v-for中推荐使用in作为遍历的关键字
2.v-if和v-show条件渲染:v-if根据当前的值(true或false)是否渲染DOM,而v-show则是根据当前的值,是否显示当前DOM
3.当在以Vue实例中存在两个需要遍历的对象时,遍历时的:key绑定的值必须区分开(不能重复);

事件的键盘修饰

@keyup事件的键盘修饰符:

  • .enter => // enter键
  • .tab => // tab键
  • .delete (捕获“删除”和“退格”按键) => // 删除键
  • .esc => // 取消键
  • .space => // 空格键
  • .up => // 上
  • .down => // 下
  • .left => // 左
  • .right => // 右

Vue实例上方法属性和计算属性以及监听属性

1.methods:用来存放Vue实列所需要的方法
2.computed:计算属性类似(JS原生的属性访问器get),计算属性的命名不能与data中的重名,在Vue实例中,最终两者时需要合并的
3.watch:监听属性,动态监听当前值的变化;侦听的是某一个属性的值的变化,它的属性名与data中要监听的属性同名;监听属性的值时函数有两个值newvalue和odlvalue;

Vue实例的生命周期函数:

1.beforeCreate:实际创建前操作:挂载根节点为挂载,和data数据都未创建
2.created:实列创建后操作:Vue实列根节点未挂在,但数据data已经出啊关键
3.mounted:挂载后操作:根节点已挂载,数据data已经创建,vue已经渲染页面内容
4.updated:数据跟新时进行的操作,并重新渲染数据
5.destroyed:数据销毁后的操作
6.

代码实操

1.代码

  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Vue入门2</title>
  8. </head>
  9. <body>
  10. <div id="app">
  11. <!-- for-in和for-of的区别,必须绑定:key -->
  12. <ul v-for="(item,i) of ldy" :key="i">
  13. <li>{{i}}=>{{item}}</li>
  14. </ul>
  15. <ul v-for="(item,key,index,) in dacheng" :key="item.id">
  16. <li>{{key}}:{{index}}=>{{item.id}}=>{{item.name}}=>{{item.age}}</li>
  17. </ul>
  18. <!-- 条件渲染 -->
  19. <div v-if="istrue">晚上好!</div>
  20. <div v-show="isshow">晚上好!</div>
  21. <hr>
  22. <span>{{isshow?uptip:downtip}}</span>
  23. <hr>
  24. <div v-if="14 < age < 18">未成年人</div>
  25. <div v-else-if="18 <= age <= 30">成年人</div>
  26. <div v-else >成年人</div>
  27. <input type="text" @keyup.enter="createlist()" v-model="message">
  28. <ul v-if="list.length > 0">
  29. <li v-for="item in list" >{{item}}</li>
  30. </ul>
  31. <div>
  32. <h3>加法运算</h3>
  33. <input type="text" v-model.number="num1">+<input type="text" v-model.number="num2">=<span v-text="sum"></span>
  34. </div>
  35. <input type="number" v-model="count">
  36. </div>
  37. </body>
  38. <script src="vue.js" type="text/javascript" charset="utf-8"></script>
  39. <script>
  40. const vm=new Vue({
  41. el:"#app",
  42. data:{
  43. ldy:[1,2,3,4,5],
  44. dacheng:{
  45. ldy:{id:6,name:"ldy",age:20},
  46. cui:{id:7,name:"cqw",age:20},
  47. },
  48. isshow:true,
  49. istrue:false,
  50. uptip:"早上好!",
  51. downtip:"晚上好!",
  52. age:20,
  53. message:"",
  54. list:[],
  55. num1:"",
  56. num2:"",
  57. count:0,
  58. },
  59. methods:{
  60. createlist(){
  61. this.list.unshift(this.message);
  62. this.message=null;
  63. }
  64. },
  65. computed:{
  66. sum(){
  67. return this.num1+this.num2;
  68. }
  69. },
  70. watch:{
  71. count(newvar,oldvar){
  72. console.log(newvar,oldvar);
  73. if(this.count>20)alert("你已经超过最大值!");
  74. }
  75. }
  76. })
  77. </script>
  78. </html>

2.运行结果

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议