Blogger Information
Blog 26
fans 0
comment 3
visits 17762
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
vue指令演练
后网络时代
Original
635 people have browsed it

将课上提及的vue指令全部上机操作并发

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. <style>
  8. .active{
  9. color:cyan;
  10. }
  11. .bigfontsize{
  12. font-size:26px;
  13. }
  14. ul,li{
  15. list-style: none;
  16. }
  17. ul li:nth-of-type(1){
  18. background-color:lightsalmon
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div class="test">
  24. <p>{{title}}</p>
  25. <!-- v-text 是由vue实例掌管的自定义属性,称为"指令.作用:相当于 innerText,textContent" -->
  26. <p v-text="vtext"></p>
  27. <p v-once="vtext">v-once让vtext本次不渲染</p>
  28. <!-- v-html 相当于innerHTML -->
  29. <p v-html="vhtml"></p>
  30. <!-- v-bind v-on 指令 -->
  31. <p v-bind:style="style">使用v-bind:style</p>
  32. <!-- v-bind 指令简写为冒号 :;它绑定的属性支持表达式 -->
  33. <p :style="'color:red'">{{vbind}}:style的值:'color:red'</p>
  34. <p :style="`color:red`">{{vbind}}:style的值:`color:red`</p>
  35. <p :style="`${style}`">{{vbind}}:style的值:`${style}`</p>
  36. <!-- 绑定类 -->
  37. <p :class="`active bigfontsize`">{{vbindclass}}:class的值:`active bigfontsize`</p>
  38. <p :class="class1">{{vbindclass}}:class的值:class1是vue中定义的值</p>
  39. <p :class="`active bigfontsize`">{{vbindclass}}:class的值:`active bigfontsize`</p>
  40. <p :class="{active:false,bigfontsize:true}">{{vbindclass}}:class的值:{active:false,bigfontsize:true}</p>
  41. <p :class="{active:boolT,bigfontsize:boolT}">{{vbindclass}}:class的值:{active:boolT,bigfontsize:boolT}</p>
  42. <p :class="[active1,bigfontsize1]">{{vbindclass}}:class的值:[active1,bigfontsize1]</p>
  43. <p :class="[`active`,`${bigfontsize1}`]">{{vbindclass}}:class的值:[`active`,`${bigfontsize1}</p>
  44. <!-- 绑定事件:v-on 简写为@,可以通过prevent来阻止事件的默认行为 -->
  45. <p><a href="3.0.html" v-on:click="show">点击触发事件</a></p>
  46. <p><a href="3.0.html" v-on:click.prevent.once="show">点击触发事件,并阻止默认事件,可以冒泡</a></p>
  47. <p><a href="3.0.html" v-on:click.prevent.stop="show">点击触发事件,并阻止默认事件,阻止冒泡</a></p>
  48. <!-- once只允许vue绑定的事件执行一次,触发以后会清除vue绑定的事件 -->
  49. <p><a href="3.0.html" v-on:click.prevent.stop.once="show">点击触发事件,并阻止默认事件,阻止冒泡,只执行一次</a></p>
  50. <!-- 事件传参,注意vue的事件对象的参数名称只能是$event; -->
  51. <button @click.stop="add($event,100,200)">相加</button>
  52. <!-- 双向绑定 -->
  53. <p>模型{{webjs}}</p>
  54. <p>双向绑定<input type="text" name="input" :value="webjs" @input="webjs=$event.target.value" ></p>
  55. <p>双向绑定简写:<input type="text" name="input" :value="webjs" v-model="webjs" ></p>
  56. <input type="text" name="input" :value="webjs" v-model="webjs" >
  57. <!-- 懒加载 -->
  58. <p>懒加载 :<input type="text" name="input" :value="webjs" v-model.lazy="webjs" ></p>
  59. <!-- 数字类型测试 -->
  60. <p><input type="text" name="input" :value="num" v-model.number="num" ></p>
  61. <p>{{ typeof num}}</p>
  62. </div>
  63. <div class="app">
  64. <p>{{define}}</p>
  65. <!-- key:可以干预diff算法 -->
  66. <!-- VUE通过稳定唯一的key来判断节点是否要重新渲染,以提升效率 -->
  67. <!-- 遍历数组 -->
  68. <ul>
  69. <li>遍历数组</li>
  70. <li v-for="(item,index) in items" :key="index">{{index}}---{{item}}</li>
  71. </ul>
  72. <!-- 遍历对象 -->
  73. <ul>
  74. <li>遍历对象</li>
  75. <li v-for="(item,prop,index) in user" :key="prop">{{prop}}---{{item}}---{{index}}</li>
  76. </ul>
  77. <!-- 遍历对象数组 -->
  78. <ul>
  79. <li>遍历对象数组</li>
  80. <li v-for="(user,index) in users" :key="user.id">{{user.id}}---{{user.name}}---{{user.tel}}</li>
  81. </ul>
  82. <!-- 解构 -->
  83. <ul>
  84. <li>解构</li>
  85. <li v-for="(n,index) in 10" :key="n">{{index}}---{{n}}</li>
  86. </ul>
  87. </div>
  88. <!-- VUEJS包引入 =====> @input="webjs=$event.target.value" -->
  89. <script src="https://cdn.jsdelivr.net/npm/vue@2.6.12"></script>
  90. <script>
  91. //创建vue实例
  92. const vi=new Vue({
  93. el:'.test',//完成挂载
  94. //数据注入
  95. data:{
  96. title:'hello,VUE学习启动了!',
  97. vtext:'v-text 指令测试',
  98. vhtml:'<span>vhtml使用</span>',
  99. style:'color:red;background-color:cyan;',
  100. class1:`active bigfontsize`,
  101. vbind:'v-bind绑定指令',
  102. vbindclass:'v-bind绑定class',
  103. boolF:false,
  104. boolT:true,
  105. active1:'active',
  106. bigfontsize1:'bigfontsize',
  107. webjs:'双向绑定实现绑定',
  108. num:0,
  109. },
  110. methods:{
  111. show:function(){
  112. //vue 中的this代表它的实例
  113. alert(this.title);
  114. },
  115. add:function(ev,a,b){
  116. console.log(ev),
  117. console.log('%d + %d = %d',a,b,a+b);
  118. console.log(a," + ",b,"=",a+b);
  119. },
  120. }
  121. })
  122. vi.vhtml='<span style="color:red">vhtml使用v-html</span>';//这里定义的值必须出现的data定义里面
  123. document.querySelector('.test').addEventListener('click',function(){
  124. // alert(this.tagName);
  125. });
  126. //单独绑定节点实现v-for
  127. const forarr=new Vue({
  128. el:'.app',//完成挂载
  129. //数据注入
  130. data:{
  131. define:'VUE的遍历',
  132. //数组
  133. items:['北京','上海','广州'],
  134. //对象
  135. user:{
  136. name:'张三',
  137. email:'nandehutu@126.com',
  138. },
  139. //对象数组
  140. users:[
  141. {id:1,name:'zhangsan',tel:13696685574},
  142. {id:2,name:'mingmign',tel:1899668574},
  143. {id:3,name:'sanwuqun',tel:123968574}
  144. ],
  145. },
  146. })
  147. </script>
  148. </body>
  149. </html>

效果:



Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post