vue详解(2)

1. 指令修饰符

通过 "." 指明一些指令 后缀,不同 后缀 封装了不同的处理操作 → 简化代码

① 按键修饰符
@keyup.enter → 键盘回车监听

② v-model修饰符
v-model.trim → 去除首尾空格
v-model.number → 转数字

③ 事件修饰符
@事件名.stop → 阻止冒泡(点击儿子,不会冒泡到父亲身上)
@事件名.prevent → 阻止默认行为

2. v-bind 对于样式控制的增强

操作class

语法 :class = "对象/数组"
对象 → 键就是类名,值是布尔值。如果值为 true,有这个类,否则没有这个类

<div class="box" :class="{类名1: 布尔值,类名2:布尔值}"></div>

适用场景:一个类名,来回切换(tab栏高亮切换)
数组 → 数组中所有的类,都会添加到盒子上,本质就是一个 class 列表

<div class="box" :class="[ 类名1, 类名2, 类名3 ]"></div>
:class="['pink', 'big']"//不能双引号,只能单引号

适用场景:批量添加或删除类

操作style

语法 :style = "样式对象"

<div class="box" :style="{ CSS属性名1: CSS属性值, CSS属性名2: CSS属性值 }"></div

适用场景:某个具体属性的动态设置(进度条效果)

3. v-model 应用于其他表单元素

常见的表单元素都可以用 v-model 绑定关联 → 快速 获取设置 表单元素的值,它会根据 控件类型 自动选取 正确的方法 来更新元素。

  • 输入框 input:text → value
  • 文本域 textarea → value
  • 复选框 input:checkbox → checked
  • 单选框 input:radio → checked
  • 下拉菜单 select → value
  • 注:(name: 给单选框加上 name 属性 可以分组 → 同一组互相会互斥;select 的 value 值,关联了选中的 option 的 value 值)

    4. 计算属性

    概念:基于现有的数据,计算出来的新属性依赖的数据变化,自动重新计算。
    语法:
    ① 声明在 computed 配置项中,一个计算属性对应一个函数
    ② 使用起来和普通属性一样使用 {{ 计算属性名 }},是属性不用加括号
    计算属性 → 可以将一段 求值的代码 进行封装

    //computed里面直接是方法
    computed: {
    计算属性名 () {
    基于现有数据,编写求值逻辑
    return 结果
    }
    },

5. computed 计算属性 和 methods 方法的区别

  • computed 计算属性:
    作用:封装了一段对于数据的处理,求得一个结果
    语法:
    ① 写在 computed 配置项中
    ② 作为属性,直接使用 → this.计算属性 {{ 计算属性 }}
  • 优点:缓存特性(提升性能)
    计算属性会对计算出来的结果缓存,再次使用直接读取缓存,
    依赖项变化了,会自动重新计算 → 并再次缓存
  • methods 方法:
    作用:给实例提供一个方法,调用以处理业务逻辑
    语法:
    ① 写在 methods 配置项中
    ② 作为方法,需要调用 → this.方法名( ) {{ 方法名() }} @事件名="方法名"

6. 计算属性完整写法

计算属性默认的简写,只能读取访问,不能 "修改"
如果要 "修改" → 需要写计算属性的完整写法

//computed里是对象,对象里边才是方法
computed: {
计算属性名: {
get() {
一段代码逻辑(计算逻辑)
return 结果
},
set(values) {
一段代码逻辑(修改逻辑)
}
}
}

7. watch 侦听器(监视器)

作用:监视数据变化,执行一些 业务逻辑 或 异步操作。
语法:
① 简单写法 → 简单类型数据,直接监视

data: {
    words: '苹果',
    obj: {
    words: '苹果'
    }
},
watch: {
    // 该方法会在数据变化时,触发执行
    // newValue新值, oldValue老值(一般不用)
    words (newValue, oldValue) {
    一些业务逻辑 或 异步操作。
},
    //JS的方法名不能直接用特殊字符
    'obj.words' (newValue, oldValue) {
    一些业务逻辑 或 异步操作。
    }
}

需求:1.输入内容,实时翻译


② 完整写法 → 添加额外的配置项 (深度监视复杂类型,立刻执行))
(1) deep: true 对复杂类型深度监视(监视对象中的所有属性变化)
(2) immediate: true 初始化立刻执行一次handler方法

data: {
obj: {
words: '苹果',
lang: 'italy'
},
},
watch: {// watch 完整写法
数据属性名: {
deep: true, // 深度监视视(针对复杂类型)
immediate: true, // 是否立刻执行一次handler
handler (newValue) {
console.log(newValue)
}
}
}

需求:1.输入内容,修改语言,都实时翻译;2.默认文本,一进入页面,立刻翻译一次

来自上海
博客文章均为Ferryman.原创,转载请注明文章地址及作者
如有需要,可通过RSS订阅文章
有任何问题,可以在评论区留言哦~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇