Blogger Information
Blog 16
fans 0
comment 0
visits 16821
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
vue常用指令
刚哥哥
Original
783 people have browsed it

实例演示 ——(vue 挂在点和Vue实例)

  1. <!-- 引入vue -->
  2. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  3. <!-- 设置一个 挂载点 -->
  4. <div class="gzd">
  5. <!-- {{}}数据占位符 -->
  6. <p>11111{{test}}</p>
  7. <p>{{be ? 'true真' : 'false假'}}</p>
  8. </div>
  9. <script>
  10. // 实例化 vue
  11. const Vus = new Vue({
  12. //挂在元素
  13. el: document.querySelector('.gzd'),
  14. // document.querySelector('.gzd'),
  15. // el: '.gzd',
  16. //数据注入
  17. data: {
  18. test: 'vue-测试0',
  19. name: '御弟哥哥',
  20. //be: false,
  21. be: true,
  22. },
  23. });
  24. // console.log(Vus.le);
  25. //访问data属性 数据 的两种方法
  26. // 因为 vue中的data中的属性会自动成为vue实例的属性,
  27. console.log(Vus.test);
  28. console.log(Vus.$data.name);
  29. console.log(Vus.name);
  30. //vue 指令 :vue实例管理的自定义属性,称为指令
  31. // v-text :
  32. // v-once :
  33. // v-html :
  34. const vus2 = new Vue({
  35. //el:'.app',
  36. el: document.querySelector('.app'),
  37. data:{
  38. name:'刚哥6',
  39. }
  40. });
  41. console.log(vus2.name);
  42. </script>

实例演示 —— (v-model双向绑定)

  1. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  2. <div id="mod">
  3. <p>单选绑定:模型中的数据改变后模板的数据跟着改变------{{name}}</p>
  4. <p>模型中的数据:--{{name}}</p>
  5. <!-- 双向绑定 就是指:在页面中改变值后,模型中的数据也更正改变
  6. 须要注意:须要监听input输入框的值,input事件 点击的哪一个的输入框,的值
  7. input keyup 两个都可以
  8. -->
  9. <p>双向绑定:在页面中改变值后,模型中的数据也更正改变---<input type="text" name='' :value="name" @input="name=$event.target.value"></p>
  10. <p>双向绑定:在页面中改变值后,模型中的数据也更正改变---<input type="text" name='' v-bind:value="name" v-on:keyup="name=$event.target.value"></p>
  11. <!-- 通过 vue 语法糖 (@input="name=$event.target.value" === v-model 简写 ) -->
  12. <!-- v-model也可以和.lazy、.trim和.number这些修饰符一起使用。 -->
  13. <!-- 在每次 input 事件触发后将输入框的值与数据进行同步,添加 lazy 修饰符,从而转变为使用 change 事件进行同步 -->
  14. <!-- input v-model.lazy="msg" .lazy 懒加载 按回车(或失去焦点)后才会更新数据 -->
  15. <!-- v-model.trim="msg" .trim 去除字符串首尾的空格-->
  16. <!-- v-model.number="msg" .number 将数据转化为数值类型 -->
  17. <p>v-model 双向绑定模型数据:---{{name1}}</p>
  18. <!-- <p>v-model 双向绑定:<input type="text" name="" value="name1" v-model="name1"></p> -->
  19. <p>v-model 双向绑定lazy:<input type="text" name="" v-model.lazy="name1"></p>
  20. <p>v-model 双向绑定number:<input type="text" name="" v-model.number="name1"></p>
  21. <p>v-model 双向绑定trim:<input type="text" name="" v-model.trim="name1"></p>
  22. <p>v-model 双向绑定number:<input type="text" name="" v-model.number="num"></p>
  23. <p>{{typeof num}}</p>
  24. </div>
  25. <script>
  26. const ModVm = new Vue({
  27. el: '#mod',
  28. data: {
  29. name:'观音姐姐666888',
  30. name1:'王母娘娘',
  31. num:'666',
  32. },
  33. });
  34. // console.log(ModVm.name1.typeof());
  35. // console.log(typeof(ModVm.num));
  36. </script>

实例演示 ——(v-bind,v-on指令)

  1. <style>
  2. .cor1{
  3. color:blue;
  4. background-color: yellowgreen;
  5. font-size: 50px;
  6. }
  7. </style>
  8. </head>
  9. <body>
  10. <!-- 引入vue -->
  11. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  12. <!-- 挂载点 -->
  13. <div class="app">
  14. <!-- <p style='color:red'>{{name}}</p> -->
  15. <!-- 绑定style 属性 -->
  16. <p v-bind:style='style1'>{{name}}</p>
  17. <!--
  18. v-bind是高频指令可以 简写成 :
  19. 可以直接加 : 省略v-bind
  20. -->
  21. <p :style='style1'>{{name}}</p>
  22. <!-- 绑定类class属性 -->
  23. <!-- 字面量方式 -->
  24. <p :class='`cor1`'>{{name}}</p>
  25. <p :class=`cor1`>{{name}}</p>
  26. <!-- 表达式方式 -->
  27. <p :class='cls'>{{name}}+表达式</p>
  28. <p :class='{cor1:false} '>{{name}}+表达式</p>
  29. <p :class='{cor1:true} '>{{name}}+表达式</p>
  30. <p :class='{cor1:zhuangtai} '>{{name}}+表达式zt</p>
  31. <!-- 绑定事件 v-on -->
  32. <p><a href="www.baidu.com" v-on:click='show'>打开百度1</a></p>
  33. <!--
  34. 阻止a标签的默认跳转行为
  35. prevent修饰符:阻止元素的默认行为
  36. -->
  37. <p><a href="www.baidu.com" v-on:click.prevent='show'>打开百度2</a></p>
  38. <!--
  39. v-on 也是高频指令 可以简写为 @
  40. -->
  41. <p><a href="www.baidu.com" @click.prevent='show'>打开百度3</a></p>
  42. <!-- stop: 阻止事件冒泡 -->
  43. <!-- <p><a href="www.baidu.com" @click.prevent.stop='show'>打开百度3</a></p> -->
  44. <!-- once 只允许执行一次 -->
  45. <!-- <p><a href="www.baidu.com" @click.prevent.once.stop='show'>打开百度3</a></p> -->
  46. <!--
  47. 事件方法的传参
  48. 事件对象 的 参数名 必须是$event
  49. -->
  50. <button @click="sum($event,100,200)">click点击</button>
  51. </div>
  52. <script>
  53. const Vm = new Vue({
  54. //绑定挂载点
  55. el: '.app',
  56. //注入自定义属性
  57. data:{
  58. name:'如来佛祖',
  59. style1:'color:red',
  60. cls:'cor1',
  61. // true 和 false 不能加 引号,加了引号就转换成字符串了
  62. zhuangtai: true,
  63. },
  64. //注入方法(函数)
  65. methods: {
  66. show() {
  67. //this 指的是 Vm ,vue的实例对象
  68. alert(this.name);
  69. },
  70. sum(ev,a,b){
  71. //查看被点击的元素和事件类型
  72. // console.log(ev.type,ev.target);
  73. console.log(a + b) ;
  74. console.log(`a:${a}+b:${b}=${a+b}`) ;
  75. },
  76. },
  77. });
  78. </script>

实例演示 ——(v-for,key 遍历)

  1. <!-- 引入vue -->
  2. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  3. <div class="app">
  4. <ul>
  5. <!-- key :可以干预 diff 算法 -->
  6. <!-- vue 通过稳定且唯一的 key 值判断这个节点是否须要重新渲染,以提升效率 -->
  7. <!-- key 只能是 整数或者字符串 -->
  8. <li v-for="(item,index ) in adds" :key="index">{{index}}----{{item}}</li>
  9. </ul>
  10. <ol>
  11. <li v-for="(item, key, index) in obj111" :key="key">{{item}}----{{key}}--kye---{{index}}</li>
  12. </ol>
  13. <ol>
  14. <li v-for="(item ,index) in obj222" :key='item.id'>{{item.id}}---{{item.name}}----{{item.gj}}</li>
  15. </ol>
  16. </div>
  17. <script>
  18. const AppVm = new Vue({
  19. el: '.app',
  20. data: {
  21. //数组
  22. adds: ['成都', '重庆', '西安', '北京'],
  23. //对象
  24. obj111: {
  25. name: '如来佛祖的舅舅的外甥的妈妈是谁的妈妈',
  26. sex: '如来佛祖是男的还是女的啊',
  27. age: '如来多少岁了',
  28. },
  29. //对象数组
  30. // obj222: {
  31. // ['日本','中国','韩国','朝鲜','印度']
  32. // ['亚洲','欧洲','大洋洲','北美洲','南美洲','非洲']
  33. // ['小孩','大人','男人','女人','老人','好人','坏人']
  34. // },
  35. obj222: [
  36. { 'id': '1', 'name': '八戒', 'gj': '朝鲜' },
  37. { 'id': '12', 'name': '悟空', 'gj': '美国' },
  38. { 'id': '112', 'name': '如来', 'gj': '日本' },
  39. ],
  40. },
  41. });
  42. </script>

实例演示 ——(v-text,v-once,v-html指令)

  1. <!-- 引入vue -->
  2. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  3. <div class="app">
  4. <!-- v-text: 是专门由 vue实例 管理的自定义属性, 称为vue指令 -->
  5. <!-- v-text 可以理解为 textContent和 innerText,<p>这里会补占用,写了也不会显示</p> -->
  6. <p v-text='name'>这里写的不会显示</p>
  7. <p v-text='name'>{{name}}</p>
  8. <p v-text>{{name}}</p>
  9. <!-- {{sex}} 注意语法:这里还不能写引号 -->
  10. <p v-once>{{sex}}</p>
  11. <p v-once>{{sex}}</p>
  12. <p v-once='sex'></p>
  13. <!-- v-html 可以理解为 innerHtml 它支持html 标签 -->
  14. <p v-html='ben'></p>
  15. </div>
  16. <script>
  17. const Vm = new Vue({
  18. el: '.app',
  19. data:{
  20. name:'山鸡扛把子',
  21. sex: '不是男人就是女人,21世纪没有太监,哦错了!还有人妖666',
  22. ben:"<p style='color:red'> 你好我是html</p>",
  23. }
  24. });
  25. </script>
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