博客列表 >vue常用指令

vue常用指令

刚哥哥
刚哥哥原创
2021年01月19日 11:14:10776浏览

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