type
status
date
slug
summary
tags
category
icon
password
mustache {{}} 模板语法
- 可以用变量、表达式、函数、三元运算符
- 不可以用:var 赋值语句 if 条件语句
基本指令
v-once
静态内容,只渲染一次,用于性能优化
v-text
与{{}} 同等效用
v-html
用于展示 html,而不进行vue的解析
v-pre
用于,想直接展示div语法中的内容
v-cloak
用于,页面尚未渲染,展示为 display: none ,以防止vue渲染速度过慢
常用指令
v-bind
- 绑定属性
- 绑定class、style
- 绑定对象
v-on
- 绑定函数
- 绑定表达式
- 绑定多个事件
- 传递函数参数
- 修饰符
- 阻止冒泡
.stop
- 键盘监听
- v-on 其他修饰符
条件渲染指令
- v-if、v-else、v-else-if
v-if是惰性的。只有条件符合才会渲染,条件不符合不会渲染
如果需要进行多个内容的判断用template包裹
- v-show
样式为 display:none,元素依旧渲染
不支持template
不可以和 v-else使用
列表渲染指令
v-for
遍历多个内容,可以用template包裹
也可以用 of 代替 in
数组更新检测
:key
- vnode 是虚拟节点,本质是一个对象。主要是为了做跨平台 template-vnode-dom
- 虚拟dom,就是vnode tree
- diff
- 如果不用key,尽可能的修改和复用相同类型的元素。(根据数组的最小值,进行遍历依次patch比较,如果一样就复用。如果不一样比较类型。如果类型一样就替换,如果类型不一样就创建。最后发现有剩余就删掉。如果有增加就新建)
- 如果使用key,会基于key的变化进行排列组合,并且会移除、销毁key不存在的元素。(先前面循环,在从后面循环,然后有增加就增加、有没有的key就移除,如果是乱序就根据key移动位置)
computed
- 有缓存,不会每次都进行计算。method每次都会进行计算。计算属性会根据依赖变化重新计算
- 可以用function,也可以用对象,对象需要写入 getter,setter
watch
- data函数里面的数据,监听需要一些进行
javascript逻辑处理
的时候使用。
- 如果是界面上的变化,本身响应式就可以实现。
- watch 也可以侦听
props
可以取消的侦听器
表单
v-model
单选
多选
复选框返回true、false
修饰符 lazy
修饰符 number
修饰符 trim
组件
全局注册组件
组件在全局都可以使用,但是在组件打包时会直接打包到主文件中。可能会增加文件大小
局部注册组件
会在组件加载的时候,才注册局部组件
父传子
- 字符串数组
- 对象
- type 为 js类型就可以
- 类型中如果是对象或者函数,默认值需要用函数返回(不然会造成引用地址一致,导致多个组件共用同一个引用地址)
- vue推荐属性传递时,使用短横 而不是 驼峰
- Attributes 继承
子传父
父组件
子组件
爷孙通讯
provide inject
兄弟通讯
vue3 不在提供eventBus 相应 api 所以需要使用第三方库来进行通信
第三方库: 发布订阅库,react也可以用。
插槽
- 基本使用
- 具名插槽
- 动态插槽
- 作用域插槽
动态组件
keep-alive
异步组件
为了做代码分包,使用异步组件,一般与 路由 结合使用
- 使用
- 结合suspense
元素实例
- $refs 获取对象实例
- $parent 获取父组件实例
- $root 获取根组件实例
- $el 获取当前组件的根组件实例
生命周期
组件 v-model
- 组件中使用
- 组件绑定多个
动画过渡
mixins
- 是一个对象,里面写重复逻辑
- 混入规则
- 如果重复key,优先使用本组件
- 相同生命周期都会调用,优先混入组件
extends
不是很常用
- 作者:yingwinwin
- 链接:https://yingwinwin.top/article/4ae03b7f-11dd-46c6-8f7a-b0a1e3e9aea2
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章