Vue指令大全(不定时更新)

跟随时代的浪潮,把vue这个渐进式JavaScript框架,熟悉使用起来吧

1.插值表达式

目的: 在dom标签中, 直接插入内容

又叫: 声明式渲染/文本插值

语法: { { 表达式 }}


 

 

2.vue指令-v-bind

目标: 给标签属性设置vue变量的值

vue指令, 实质上就是特殊的 html 标签属性, 特点: v- 开头

每个指令, 都有独立的作用

  • 语法:v-bind:属性名="vue变量"

  • 简写::属性名="vue变量"


我是a标签

3.vue指令-v-on

目标: 给标签绑定事件

  • 语法

    • v-on:事件名="要执行的==少量代码=="

    • v-on:事件名="methods中的函数"

    • v-on:事件名="methods中的函数(实参)"

  • 简写: @事件名="methods中的函数"


你要买商品的数量: { {count}}

3.1vue指令-v-on事件对象

目标: vue事件处理函数中, 拿到事件对象

  • 语法:

    • 无传参, 通过形参直接接收

    • 传参, 通过$event指代事件对象传给事件处理函数


 

3.2vue指令-v-on修饰符

目的: 在事件后面.修饰符名 - 给事件带来更强大的功能

  • 语法:

    • @事件名.修饰符="methods里函数"

      • .stop - 阻止事件冒泡

      • .prevent - 阻止默认行为

      • .once - 程序运行期间, 只触发一次事件处理函

      • .capture 添加事件侦听器时使用事件捕获模式

      • .self 只当事件在该元素本身(比如不是子元素)触发时触发回调


 

3.3vue指令-v-on按键修饰符

目标: 给键盘事件, 添加修饰符, 增强能力

  • 语法:

    • @keyup.enter - 监测回车按键

    • @keyup.esc - 监测返回按键

    • 更多修饰符


 

4.vue指令 v-model

目标: 把value属性和vue数据变量, 双向绑定到一起

  • 语法: v-model="vue数据变量"

  • 双向数据绑定

    • 数据变化 -> 视图自动同步

    • 视图变化 -> 数据自动同步


 

4.1vue指令 v-model修饰符

目标: 让v-model拥有更强大的功能

  • 语法:

    • v-model.修饰符="vue数据变量"

      • .number 以parseFloat转成数字类型

      • .trim 去除首尾空白字符

      • .lazy 在change时触发而非inupt时


 

5.vue指令 v-text和v-html

目的: 更新DOM对象的innerText/innerHTML

  • 语法:

    • v-text="vue数据变量"

    • v-html="vue数据变量"

  • 注意: 会覆盖插值表达式


 

6.vue指令 v-show和v-if

目标: 控制标签的隐藏或出现

  • 语法:

    • v-show="vue变量"

    • v-if="vue变量"

  • 原理

    • v-show 用的display:none隐藏 (频繁切换使用)

    • v-if 直接从DOM树上移除

  • 高级

    • v-else使用


 

 

 7.vue指令-v-for

  • 作用:基于源数据多次渲染元素或模板块

  • 语法

    • v-for="(值, 索引) in 目标结构"

    • v-for="值 in 目标结构"

  • 目标结构:

    • 可以遍历数组 / 对象 / 数字 / 字符串 (可遍历结构)

  • 注意:

    v-for的临时变量名不能用到v-for范围外


 

  7.1v-for更新监测

  • 目标: 当v-for遍历的目标结构改变, Vue触发v-for的更新

例子:

  • 情况1: 数组翻转
  • 情况2: 数组截取
  • 情况3: 更新值

口诀:

  • 数组变更方法, 就会导致v-for更新, 页面更新
  • 数组非变更方法, 返回新数组, 就不会导致v-for更新, 可采用覆盖数组或this.$set()

 

 

这些方法会触发数组改变, v-for会监测到并更新页面

  • push()

  • pop()

  • shift()

  • unshift()

  • splice()

  • sort()

  • reverse()

7.2 v-for中 key值

key属性 (key的值只能是唯一不重复的, 字符串或数值 ),id用id, 无id用索引

  • 推荐:使用 v-for 的时候提供 key 属性,以获得性能提升。

  • 说明:使用 key,VUE会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在的元素

8.动态class

   8.1用v-bind给标签class设置动态的值

把类名保存在vue变量中赋予给标签 

语法:

  • :class="{类名: 布尔值}"





8.2 动态style

给标签动态设置style的值(行内式)

语法

  • :style="{css属性: 值}"





9.vue过滤器

目的:转换格式, 过滤器就是一个函数, 传入值返回处理后的值

过滤器只能用在, 插值表达式和v-bind表达式

语法:

  • Vue.filter("过滤器名", (值) => {return "返回处理后的值"})

  • filters: {过滤器名字: (值) => {return "返回处理后的值"}

例子:

  • 全局定义字母都大写的过滤器

  • 局部定义字符串翻转的过滤器

//main.js文件中 定义全局过滤器

// 全局过滤器 Vue.filter(过滤器的名字,callback)
Vue.filter('reverse', val => val.split("").reverse().join(""))
// 全局过滤器 传参 
Vue.filter('reverse1', (val, str) => val.split("").reverse().join(str))



9.1vue过滤器-传参和多过滤

语法:

  • 过滤器传参: vue变量 | 过滤器(实参)

  • 多个过滤器: vue变量 | 过滤器1 | 过滤器2

鼠标长停

10.vue计算属性-computed

作用:一个数据, 依赖另外一些数据计算而来的结果

语法:

computed: {
    "计算属性名" () {
        return "值"
    }
}




10.1vue计算属性-完整写法

 使用场景:计算属性也是变量, 如果想要直接赋值, 需要使用完整写法

语法:

computed: {
    "属性名": {
        set(值){
            
        },
        get() {
            return "值"
        }
    }
}





11.vue侦听器-watch

  作用:可以侦听data/computed属性值改变

语法:

watch: {
    "被侦听的属性名" (newVal, oldVal){
        
    }
}





11.1vue侦听器-深度侦听和立即执行

作用:侦听复杂类型, 或者立即执行侦听函数

语法:

watch: {
    "要侦听的属性名": { //变量名对应值改变这里自动触发
        immediate: true, // 立即执行(网页打开handler执行一次)
        deep: true, // 深度侦听复杂类型内变化
        handler (newVal, oldVal) { 
            
        }
    }
}





你可能感兴趣的:(vue.js,javascript,前端)