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

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

冰雪琉璃
冰雪琉璃原创
2021年04月30日 12:13:33579浏览

vue的指令

1.v-if判断
2.v-for循环
3.v-model数据的双向绑定

  1. v-on事件属性

    实例演示

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Document</title> -->
    6. <!-- 导入vue -->
    7. <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
    8. </head>
    9. <body>
    10. <div id="app">
    11. <p v-bind:style="style1,style2">{{site}}</p>
    12. <p v-html="messgae"></p>
    13. <p v-text="text1"></p>
    14. <!-- 不会改变因为页面已经加载了一次显示了1所以无论在改变也不会改变其值 -->
    15. <p v-once>{{one}}</p>
    16. <!-- 会改变 -->
    17. <p>{{one}}</p>
    18. <!-- @click是v-on:click的简称代表点击事件 -->
    19. <button v-on:click="btn">按钮</button>
    20. <input type="text" v-model="one" name=""/>
    21. <!-- v-for循环 -->
    22. <!-- key自定义键属性,主要功能是干扰diff算法 -->
    23. <!-- 遍历数组-->
    24. <p v-for="(index,item) in dogs" :key="index">{{index}}{{item}}</p>
    25. <!-- 遍历对象 -->
    26. <p v-for="(index,prop,item) in users" :key="index">{{index}}{{prop}}{{item}}</p>
    27. <!-- 遍历对象数组 -->
    28. <p v-for="(index,prop,item) in users" :key="index">{{index}}{{prop}}{{item}}</p>
    29. <!-- 单分支判断 -->
    30. <p v-if="flag">{{message}}</p>
    31. <button v-on:click="flag=!flag" v-text="tips=flag?'隐藏':'显示'" ></button>
    32. <!-- 多分支判断 -->
    33. <p v-if="point>=1000&&point<2000">{{grade[0]}}</p>
    34. <p v-else-if="point>=200&&point<100">{{grade[1]}}</p>
    35. <p v-else-if="point>100&&point<50">{{grade[2]}}</p>
    36. <p v-else="point>0&&point<50">{{grade[3]}}</p>
    37. </div>
    38. <script type="text/javascript">
    39. new Vue({
    40. el:"#app",
    41. data(){
    42. return{
    43. site:"我是vue",
    44. style1:"color:red",
    45. style2:"background:green",
    46. messgae:"<h2>我是message</h2>",
    47. text1:"我是text1",
    48. one:"1",
    49. //金牌会员
    50. point:1000,
    51. //默认显示,默认隐藏false
    52. flag:true,
    53. //数组
    54. dogs:['jaas','dfkjd'],
    55. //对象
    56. users:{name:"xom",age:18,id:1},
    57. //对象数组
    58. users:[
    59. {id:1,name:"xom",age:18},
    60. {id:2,name:"ming",age:18},
    61. {id:3,name:"xiaod",age:18},
    62. {id:4,name:"jing",age:18},
    63. ]
    64. }
    65. },
    66. methods:{
    67. btn:function(){
    68. alert(this.site);
    69. }
    70. }
    71. })
    72. </script>
    73. </body>
    74. </html>

    计算属性

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>计算属性computed</title>
    6. <!-- 导入vue -->
    7. <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script> </head>
    8. <body>
    9. <div id="app">
    10. <p>数量:<input type="number" v-model="num" style="width:300px;" min="0" max="10"/></p>
    11. <p>单价:{{price}}元</p>
    12. <p>金额:{{amount}}</p>
    13. </div>
    14. <script type="text/javascript">
    15. let vm=new Vue({
    16. el:"#app",
    17. data(){
    18. return{
    19. num:0,
    20. price:50,
    21. res:0,
    22. };
    23. },
    24. computed:{
    25. amount:{
    26. // 访问器get属性
    27. get(){
    28. return this.num*this.price;
    29. },
    30. // 访问器set属性value代表的是amount的值。
    31. set(value){
    32. console.log(value);
    33. if(value>=500){
    34. this.price=40;
    35. };
    36. },
    37. },
    38. },
    39. });
    40. vm.amount=500;
    41. </script>
    42. </body>
    43. </html>

    侦听器属性

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>watch侦听器属性</title>
    6. <!-- 导入vue -->
    7. <script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
    8. </head>
    9. <body>
    10. <div id="app">
    11. <p>数量:<input type="number" v-model="num" style="width:300px;" min="0" :max="max"/></p>
    12. <p>单价:{{price}}元</p>
    13. <p>金额:{{res}}</p>
    14. </div>
    15. <script type="text/javascript">
    16. let vm=new Vue({
    17. el:"#app",
    18. data(){
    19. return{
    20. num:0,
    21. price:50,
    22. res:0,
    23. max:100,
    24. };
    25. },
    26. //侦听器属性
    27. //用来监听某一个属性值的变化,属性名要和data字段中的变量名称相同。
    28. //例如我要监听num变量的变化
    29. //num(新的值,旧的值)
    30. watch:{
    31. num(newVal,oldVue){
    32. console.log(newVal,oldVue);
    33. // this.res=this.num*this.price;
    34. // this.num--->newVal, this.price;
    35. this.res=newVal*this.price;
    36. if(newVal>=20){
    37. this.max=newVal;
    38. alert("库存不足");
    39. },
    40. },
    41. },
    42. });
    43. </script>
    44. </body>
    45. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议