有时候我们不需要组件被重新渲染影响使用体验,或者是出于性能考虑,避免多次重复渲染降低性能,我们就可以使用keep-alive,将组件缓存下来,维持当前的状态……
插槽就是子组件中提供给父组件使用的一个占位符,用<slot></slot>表示,父组件可以在这个占位符中填充任何模板代码,如HTML、组件等,填充的内容会替换子组件中的<slot></slot>标签…….
Teleport是Vue3的新特性之一。是一种能够将我们的模板渲染至指定的DOM节点上,不受父级style、v-show等属性影响,但data、prop数据依旧能够共用的技术,类似于react的Protal.…..
如果组件的使用频率特别高(例如 tabcle、input、button......)这些组件几乎每个页面都在使用的话,就可以封装成全局组件……
父传子:父组件通过v-bind绑定一个数据,子组件通过defineProps接收。子传父:在子组件绑定一个click事件,通过defineEmits派发……
scoped实现组件的私有化,让当前的style只属于当前模块,BEM是Block、Element、Modifier的首字母缩写,分为块层、元素层、修饰符层,它是一种css命名规范……
简单来说, 一个组件从创建到销毁的过程 就称为生命周期Vue应用程序中主要有4个事件,8个钩子……
watchEffect有两个参数,一个回调函数,一个是对象(设置配置项), 执行传入的一个函数,同时响应式追踪其依赖,并在依赖更新时重新运行该函数……
computed计算属性就是当依赖的属性的值发生改变的时候,才会触发他的更改,不发生变化的时候,使用的就是缓存中的属性值,它有两种形式的写法……
reactive 只支持引用类型(比如:Array、Object、Map、Set),在源码里可以看到reactive做了类型的约束,它不允许我们绑定普通类型,否则会报错……
watch需要侦听特定的数据源,并在单独的回调函数中执行,它有3个参数……
toRef 针对响应式对象 (reactive封装的) 的属性创建一个ref,既保留了响应式,又保留了引用(浅拷贝,改变值时,原对象的值也会发生改变),如果是非响应式对象使用它,则只会改变数据值,不会改变视图值……