Vue之常见指令


1.vue插值语法

# 语法:
    {{变量名 或 简单的js变量取值}}   # 是放在标签内容里



    
    Title
    




我的名字是:{{name}}
我的年龄:{{age}}
{{list1[0]}}
{{obj1.name}}---->{{obj1['age']}}
{{link1}} 处理了xss攻击
运算(简单的js语法):{{10+20+30+40}}
三目运算符:{{10 < 20?'是':'否'}}

2.文本指令

# 指令就是写在标签里  带有 v- 前缀的特殊属性 都是vue的指令,指令用于在表达式的值改变时,将某些行为应用到 DOM上。

# 语法:    ="变量名"
    v-html	让文本内容渲染成HTML标签 (用于输出html代码)
    v-text	让该标签里的内容显示为js变量对应的值  (很像插值)
    v-show	放1个布尔值:为真 标签就显示;为假 标签就不显示 (只是隐藏该标签)
    v-if	放1个布尔值:为真 标签就显示;为假 标签就不显示  (从dom中直接移除该标签)



    
    Title
    
    
    
    




{{link1}}
文本指令之 v-html:

文本指令之 v-text:

文本指令之 v-show:
我是div

文本指令之 v-if:
我是div

3.事件指令

# 给原生html标签 绑定事件 

# 语法:     @事件名="事件变量名"
    v-on:click=''   # 老语法
    @click=''       # 新语法,简写成@



    
    Title
    
    
    
    




我是div

5.属性指令

# 给原生html标签 绑定属性

# 语法:    :html属性名 ="变量名"
    v-bind:  直接写js的变量或语法(不推荐)
      :	      直接写js的变量或语法(简写,推荐)  # eg:  :class='变量名'  :src='变量名'



    
    Title
    

    



我是div

6.属性指令之style和class

# 语法:
    :class='字符串、js数组、对象{red: true}、三目运算符'
    
    :style='js变量、字符串、js数组[{backgreound: ‘red’},]、js对象{background: ‘red’} 、三目运算符'



    
    Title
    


    



我是div

我是style的div

7.条件指令(条件渲染)

# 给原生html标签 绑定if判断

# 语法:
    v-if	相当于: if
    v-else	相当于:else
    v-else-if	相当于:else if



    
    Title
    


    



优秀

良好

及格

不及格

8.循环指令(列表渲染)

# 给原生html标签 绑定for循环

# 语法:
    v-for:循环显示
    
    
  • # 提供第二个的参数为键名
  • # 第三个参数为索引
  • # 也可以循环整数
  • 
    
    
        
        Title
        
        
    
    
    
    
    购物车空空如也
    商品名称 价格
    {{good.name}} {{good.price}}

    1.v-for循环数字、数组、对象

    
    
    
        
        Title
        
    
    
    

    循环数字

    数字为:{{i}}


    循环数组

    人名为:{{item}},索引为:{{i}}


    循环对象

    key值是:{{key}},value值是:{{value}}


    # vue中使用的是虚拟DOM,会和原生的DOM进行比较,然后进行数据的更新,提高数据的刷新速度(虚拟DOM用了diff算法) # 在v-for循环数组、对象时,建议在控件/组件/标签写1个key属性,属性值唯一 页面更新之后,会加速DOM的替换(渲染) :key="变量" # 实测: 不能写属性为key ,换一个 id或者其他属性

    2.检测与更新

    
    
    
        
        Title
        
    
    
    

    {{item}}


    {{item}}

    # 注意: 1.js中对象(字典)的key,可以不用加引号 # vue中,数组或对象的部分方法,才会自动检测及时更新,但有部分方法不会 # 故采用: Vue.set(数组, 索引, 值) # 会被及时检测更新 Vue.set(对象, key, 值) # 会被及时检测更新
    vue