type
status
date
slug
summary
tags
category
icon
password

mustache {{}} 模板语法

  1. 可以用变量、表达式、函数、三元运算符
  1. 不可以用:var 赋值语句 if 条件语句

基本指令

v-once

静态内容,只渲染一次,用于性能优化

v-text

与{{}} 同等效用

v-html

用于展示 html,而不进行vue的解析

v-pre

用于,想直接展示div语法中的内容

v-cloak

用于,页面尚未渲染,展示为 display: none ,以防止vue渲染速度过慢

常用指令

v-bind

  1. 绑定属性
  1. 绑定class、style
  1. 绑定对象

v-on

  1. 绑定函数
  1. 绑定表达式
  1. 绑定多个事件
  1. 传递函数参数
  1. 修饰符
  • 阻止冒泡 .stop
  • 键盘监听
  • v-on 其他修饰符

条件渲染指令

  1. v-if、v-else、v-else-if
v-if是惰性的。只有条件符合才会渲染,条件不符合不会渲染
如果需要进行多个内容的判断用template包裹
  1. v-show
样式为 display:none,元素依旧渲染
不支持template
不可以和 v-else使用

列表渲染指令

v-for
遍历多个内容,可以用template包裹
也可以用 of 代替 in

数组更新检测

:key

  1. vnode 是虚拟节点,本质是一个对象。主要是为了做跨平台 template-vnode-dom
  1. 虚拟dom,就是vnode tree
  1. diff
  • 如果不用key,尽可能的修改和复用相同类型的元素。(根据数组的最小值,进行遍历依次patch比较,如果一样就复用。如果不一样比较类型。如果类型一样就替换,如果类型不一样就创建。最后发现有剩余就删掉。如果有增加就新建)
  • 如果使用key,会基于key的变化进行排列组合,并且会移除、销毁key不存在的元素。(先前面循环,在从后面循环,然后有增加就增加、有没有的key就移除,如果是乱序就根据key移动位置)

computed

  1. 有缓存,不会每次都进行计算。method每次都会进行计算。计算属性会根据依赖变化重新计算
  1. 可以用function,也可以用对象,对象需要写入 getter,setter

watch

  • data函数里面的数据,监听需要一些进行 javascript逻辑处理的时候使用。
  • 如果是界面上的变化,本身响应式就可以实现。
  • watch 也可以侦听 props
可以取消的侦听器

表单

v-model

单选
多选
复选框返回true、false
修饰符 lazy
修饰符 number
修饰符 trim

组件

全局注册组件

组件在全局都可以使用,但是在组件打包时会直接打包到主文件中。可能会增加文件大小

局部注册组件

会在组件加载的时候,才注册局部组件

父传子

  1. 字符串数组
  1. 对象
  • type 为 js类型就可以
  • 类型中如果是对象或者函数,默认值需要用函数返回(不然会造成引用地址一致,导致多个组件共用同一个引用地址)
  • vue推荐属性传递时,使用短横 而不是 驼峰
  1. Attributes 继承

子传父

父组件
子组件

爷孙通讯

provide inject
 
 
 

兄弟通讯

vue3 不在提供eventBus 相应 api 所以需要使用第三方库来进行通信
第三方库: 发布订阅库,react也可以用。
 
 
 

插槽

  1. 基本使用
  1. 具名插槽
  1. 动态插槽
  1. 作用域插槽
 

动态组件

keep-alive

异步组件

为了做代码分包,使用异步组件,一般与 路由 结合使用
  1. 使用
  1. 结合suspense

元素实例

  1. $refs 获取对象实例
  1. $parent 获取父组件实例
  1. $root 获取根组件实例
  1. $el 获取当前组件的根组件实例

生命周期

 

组件 v-model

  1. 组件中使用
  1. 组件绑定多个

动画过渡

mixins

  1. 是一个对象,里面写重复逻辑
  1. 混入规则
    1. 如果重复key,优先使用本组件
    2. 相同生命周期都会调用,优先混入组件

extends

不是很常用
 
switch购买和使用webpack基本使用