博客列表 >vue及常用指令简介

vue及常用指令简介

OC的PHP大牛之路
OC的PHP大牛之路原创
2022年08月08日 11:19:15329浏览

挂载点/vue实例/数据注入/ 响应式

  1. <body>
  2. <!-- 1.挂载点: vue实例的作用域 -->
  3. <div class="app">
  4. <p>用户名: {{username}}</p>
  5. </div>
  6. <script>
  7. // 2. vue实例
  8. // 2.1 vue配置项
  9. // const config = {
  10. // // vue中的变量全部写到data()中
  11. // data() {
  12. // return {
  13. // // 需要返回的数据
  14. // username: '王老师',
  15. // };
  16. // },
  17. // };
  18. // 2.2 创建vue实例
  19. // const app = Vue.createApp(config);
  20. // 2.3 将vue实例与挂载点绑定
  21. // app.mount('.app');
  22. // 代码简化
  23. const app = Vue.createApp({
  24. data() {
  25. return {
  26. username: '王老师',
  27. };
  28. },
  29. }).mount('.app');
  30. // 3. 数据注入: 数据自动注入到了vue实例中
  31. console.log(app.$data.username);
  32. // 进一步简化
  33. // 原因: 数据,已经被绑定到vue实例app对象上
  34. // app.username = 'xxx'
  35. console.log(app.username);
  36. // 4. 响应式
  37. app.username = '张老师';
  38. </script>
  39. </body>

vue常用指令v-text/v-html

  1. <body>
  2. <!-- vue指令: 'v-':前缀, 本质上就是html标签的"自定义属性" -->
  3. <div class="app">
  4. <!-- v-text -> textContent -->
  5. <!-- <p>用户名: <span v-text="username"></span></p> -->
  6. <!-- v-html -> innerHTML -->
  7. <p>用户名: <span v-html="username"></span></p>
  8. </div>
  9. <script>
  10. const app = Vue.createApp({
  11. data() {
  12. return {
  13. username: '牛老师',
  14. };
  15. },
  16. }).mount('.app');
  17. app.username = '<i style="color:red">张老师</i>';
  18. </script>
  19. </body>

样式绑定

  1. <script src="https://unpkg.com/vue@next"></script>
  2. <style>
  3. .active {
  4. color: red;
  5. }
  6. .bgc {
  7. background-color: yellow;
  8. }
  9. </style>
  10. </head>
  11. <body>
  12. <div class="app">
  13. <!-- 1. 行内: style -->
  14. <!-- <p style="color: red">php.cn</p> -->
  15. <!-- vue动态属性设置指令 v-bind:属性名 -->
  16. <!-- <p v-bind:style="style">php.cn</p> -->
  17. <p v-bind:style="{color:textColor,backgroundColor: bgc}
  18. ">php.cn</p>
  19. <p v-bind:style="[base, custom]">php.cn</p>
  20. <!-- 2. 类样式: class -->
  21. <p v-bind:class="active">Hello 猫老师</p>
  22. <!-- classList -->
  23. <p v-bind:class="{active: isActive}">Hello 猫老师</p>
  24. <p class="active bgc">Hello 王老师</p>
  25. <!-- v-bind:是高频指令, 可简化为冒号 -->
  26. <p :class="['active', 'bgc']">Hello 王老师</p>
  27. <p :class="[mycolor, mybgc]">Hello 王老师</p>
  28. </div>
  29. <script>
  30. const app = Vue.createApp({
  31. data() {
  32. return {
  33. // style: 'color: blue',
  34. textColor: 'green',
  35. bgc: 'wheat',
  36. base: {
  37. border: '1px solid',
  38. background: 'lightgreen',
  39. },
  40. custom: {
  41. color: 'white',
  42. padding: '15px',
  43. },
  44. active: 'active',
  45. isActive: true,
  46. mycolor: 'active',
  47. mybgc: 'bgc',
  48. };
  49. },
  50. }).mount('.app');
  51. </script>
  52. </body>

数据双向绑定

  1. <div class="app">
  2. <!-- <p> -->
  3. <!-- v-on: vue的事件指令 -->
  4. <!-- v-on: 高频指令, @表示 -->
  5. <!-- <input type="text" @input="comment = $event.target.value"
  6. :value="comment" />
  7. <span>{{comment}}</span>
  8. </p> -->
  9. <!-- vue为简化双向数据绑定, 创建一个语法糖: v-mode 指令 -->
  10. <!-- $event 事件对象, 在vue不能直接用event -->
  11. <!-- v-model="comment" ===> @input="comment = $event.target.
  12. value" -->
  13. <!-- <p>
  14. <input type="text" v-model="comment" :value="comment" />
  15. <span>{{comment}}</span>
  16. </p> -->
  17. <p>
  18. <!-- 延迟绑定:修饰符 -->
  19. <!-- blur 事件 change事件 -->
  20. <input type="text" v-model.lazy="comment" :value="comment" />
  21. <span>{{comment}}</span>
  22. </p>
  23. </div>
  24. <script>
  25. const app = Vue.createApp({
  26. data() {
  27. return {
  28. comment: null,
  29. };
  30. },
  31. }).mount('.app');
  32. </script>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议