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. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. <!-- 1. 导入Vue的包 -->
  9. <script src="lib/vue-2.4.0.js"></script>
  10. </head>
  11. <body>
  12. <div id="app">
  13. <p>{{msg}}</p>
  14. </div>
  15. <script>
  16. var vm = new Vue({
  17. el: '#app', // 表示,当前我们new的这个Vue实例,要控制页面上的哪个区域
  18. data: { // data属性,存放的是el中要用到的数据
  19. msg: '欢迎学习vue'
  20. }
  21. });
  22. </script>
  23. </body>
  24. </html>

1.部分指令

插值表达式: 数据绑定最常见形式就是使用 {{…}}
v-html: 用于输出html代码
v-cloak: 能够解决插值表达式闪烁问题
v-text: 会覆盖元素中原本的内容,但是插值表达式只会替换增加的这个占位符
v-bind: 用于绑定属性的指令 v-bind会将后面的内容当做js表达式去解析执行,可以写合法的js表达式

  1. 简写为 :要绑定的属性

v-on: 绑定事件 简写 @

2.事件修饰符:

.stop 阻止冒泡
.prevent 阻止默认事件
.capture 添加事件侦听器时使用事件捕获模式
.self 只当事件在该元素本身(比如不是子元素)触发时触发回调
.once 事件只触发一次

3.双向绑定

v-model 只能运用在表单元素中

4.在Vue中使用样式

使用class样式

数组

这是一个邪恶的H1

数组中使用三元表达式

这是一个邪恶的H1

数组中嵌套对象

这是一个邪恶的H1

直接使用对象

这是一个邪恶的H1

使用内联样式

  1. 直接在元素上通过 :style 的形式,书写样式对象

    这是一个善良的H1

    将样式对象,定义到 data 中,并直接引用到 :style 中
    在data上定义样式:
    data: {
    1. h1StyleObj: { color: 'red', 'font-size': '40px', 'font-weight': '200' }
    }
    在元素中,通过属性绑定的形式,将样式对象应用到元素中:

    这是一个善良的H1

    2.在 :style 中通过数组,引用多个 data 上的样式对象
    在data上定义样式:
    data: {
    1. h1StyleObj: { color: 'red', 'font-size': '40px', 'font-weight': '200' },
    2. h1StyleObj2: { fontStyle: 'italic' }
    }
    在元素中,通过属性绑定的形式,将样式对象应用到元素中:

    这是一个善良的H1

    5.v-for和key属性

    迭代数组

    1. <ul>
    2. <li v-for="(item, i) in list">索引:{{i}} --- 姓名:{{item.name}} --- 年龄:{{item.age}}</li>
    3. </ul>

    迭代对象中的属性

    1. <!-- 循环遍历对象身上的属性 -->
    2. <div v-for="(val, key, i) in userInfo">{{val}} --- {{key}} --- {{i}}</div>

    迭代数字

    1. <p v-for="i in 10">这是第 {{i}} P标签</p>
    在组件中,使用v-for循环的时候,或者在一些特殊情况中,如果v-for有问题,必须在使用v-for的同时,指定唯一的string/nameber类型的key值
    2.2.0+ 的版本里,当在组件中使用 v-for 时,key 现在是必须的。
    当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略。如果数据项的顺序被改变,Vue将不是移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。
    为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性。

    6.v-if和v-show

    v-if 每次都会重新删除或创建元素
    v-show 不会进行Dom的删除和创建,只是切换元素的display:none样式
    v-if有较高的切换性能消耗
    v-show有较高的初始渲染消耗
    如果元素涉及到频繁的切换,最好不要使用v-if,而是推荐使用v-show
    如果元素可能永远也不会被显示出来被用户看到,则推荐使用v-if