vue3文档要点记录

92 阅读2分钟
  • 声明式渲染:Vue 基于标准 HTML 拓展了一套模板语法,使得我们可以声明式地描述最终输出的 HTML 和 JavaScript 状态之间的关系。

  • 响应性:Vue 会自动跟踪 JavaScript 状态变化并在改变发生时响应式地更新 DOM。

  • Attribute 绑定v-bind

    • 只支持表达式+调用函数,不支持语句?
    • 受限全局访问,Math,Date,不能访问window上的变量
    • 如果要添加全局属性,在app.config.globalProperties上添加
  • 指令Directives

    • v-bind,:,动态参数v-bind:[attributeName]
    • v-on,@,动态参数v-on:[eventName]
  • 修饰符Modifiers

    • .prevent 修饰符会告知 v-on 指令对触发的事件调用 event.preventDefault()

  • methods下的方法是有状态的

  • 计算属性可对响应式依赖缓存,通过setter可写,

    • 计算函数不应有副作用
    • 避免直接修改计算属性值
  • class可用对象或数组、表达式动态绑定,组件上class attribute会被传递到子组件

  • v-for 里可以使用范围值,n in 10取值为1...10

  • watch 默认是浅层的:被侦听的属性,仅在被赋新值时,才会触发回调函数——而嵌套属性的变化不会触发。如果想侦听所有嵌套的变更,需要深层侦听器handler。只在必要时才使用它,并且要留意性能。

  • watch 默认是懒执行的:仅当数据源变化时,才会执行回调。用immediate: true 选项强制回调函数立即执行

  • 子组件可以通过ref和expose暴露数据和函数

  • “透传 attribute”指的是传递给一个组件,却没有被该组件声明为 props 或 emits 的 attribute 或者 v-on 事件监听器。最常见的例子就是 class、style 和 id。这些透传进来的 attribute 可以在模板的表达式中直接用 $attrs 访问到。

  • 如果你不想要一个组件自动地继承 attribute,你可以在组件选项中设置 inheritAttrs: false。

  • transition与transitiongroup封装了基础的动画特性,拿来就用

  • keepalive可在多个组件间动态切换时缓存被移除的组件实例

  • Teleport和React中的Portal类似,将模板放到外部DOM节点,比如全局模态框

  • 响应性是一种可以使我们声明式地处理变化的编程范式