vue2+复习笔记

2021-12-07  本文已影响0人  99ZY

【原创】

ESM

vue不同规范文件作用
ES Module:从 2.6 开始 Vue 会提供两个 ES Modules (ESM) 构建文件:

通过 $parent 直接访问父组件,

可以改变父组件的数据,并达到响应式的效果(从这一点来说,vue不能说是单向数据流

组件之间传参

父到子 子到父 是否响应式 特点
prop slot prop 引用传递
provide inject 引用传递
$refs /$children $parent(根实例$root) 引用传递
vuex 等 vuex 等 中间层
$eventBus $eventBus 中间层
全局对象 全局对象 中间层

引用传递: 在 JavaScript 中对象和数组是通过引用传入的,所以对于一个数组或对象类型的 prop 来说,在子组件中改变变更这个对象或数组本身将会影响到父组件的状态。

组件之间的循环引用

组件之间的循环引用

vuex中应用日志

import { createLogger } from 'vuex'

//   通过plugins 取应用日志
vue.store({
  state:{},
  getter:{},
  mutation:{},
  action:{},
 plugins:[ createLogger ]
})

vuex 双向数据绑定的优化

// 不正确方式
<input v-model="$store.state.message">
// 方式一
<input :value="$store.state.message" @input="
  (e)=>{
      $store.commit('changeMsg',e.target.value)
  }  ">

必须承认,这样做比简单地使用“v-model + 局部状态”要啰嗦得多,并且也损失了一些 v-model 中很有用的特性。另一个方法是使用带有 setter 的双向绑定计算属性:

<input v-model="message">
// 方式二
computed: {
  message: {
    get () {
      return this.$store.state.obj.message
    },
    set (value) {
      this.$store.commit('updateMessage', value)
    }
  }
}

vue响应式数据依赖收集

image.png

模版AST与Vnode

image.png
上一篇 下一篇

猜你喜欢

热点阅读