Skip to content

Commit

Permalink
add:add vue
Browse files Browse the repository at this point in the history
  • Loading branch information
SK-Luffa committed Jul 30, 2024
1 parent 5c54ebc commit 7c5229f
Showing 1 changed file with 36 additions and 2 deletions.
38 changes: 36 additions & 2 deletions docs/src/pages/FixedArticle/vue/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,8 +163,42 @@
- 添加多个vue实例方法,通过把他们添加到vue.prototype 上实现
### 区别:
- 编写形式:组件主要是.vue为主 插件则不限制,并且插件应该暴露一个方法install,方法的第一个参数是一个vue构造器,第二个参数是一个可选的选项对象
- 注册形式:
- 使用场景
- 注册形式:vue组件的注册方式主要有两种:全局注册和局部注册,插件注册的方式主要是通过vue.use()的方式进行注册 注意:vue注册插件的时候,需要再new vue()之前完成,vue.use会自动组织多次注册相同插件,只会注册一次
- 使用场景:组件主要是用来构成你的业务模块的,他的目标是App.vue 插件主要是用来增强你的技术栈的功能模块,他的目标是vue本身
# vue组件之间的通信方式有哪些?
- 通过props传递
- 通过$emit来触发事件
- 使用ref
- EventBus
- $parent或$root
- attrs与listeners
- provide与inject
- vueX
### 组件通信的分类
- 父子组件之间的通信 可选择props和$emit 也可以选择ref
- 兄弟组件之间的通信 可选择$bus 其次可以选择$parent进行传递
- 祖孙与后代组件之间的通信 可选择attrs与listeners或者Provide与inject
- 非关系组件之间的通信 可以直接选择vuex或者pinia

# 双向绑定
### 什么是双向绑定
- 双向绑定是指数据模型和视图之间的同步更新机制。当数据模型发生变化时,视图会自动更新,反之,当视图当中的数据发生变化时,数据模型也会自动更新,这种机制主要是通过v-model进行实现的,比较常用在表单控件上
### 双向绑定的原理
1. 数据监听:vue使用object.defineProperty(vue2)或者是proxy(vue3),来劫持数据的读写操作,从而实现数据的响应式
2. 模板编译:vue模板编译器会解析模板中的vue指令,如v-module并生成相对应的渲染函数,一旦数据发生变化,便会重新执行相对应的渲染函数,来更新虚拟dom
3. 虚拟dom:当数据发生变化时vue通过虚拟dom计算出最小的变化量,并高效的更新真实的dom
4. 事件监听:vue会自动为双向绑定的表单控件添加事件监听器,当用户在视图上进行操作时,事件监听器会更新数据模型
### 双向绑定的核心
- vue双向绑定的核心就是mvvm
1. new vue() 首先执行初始化,对data执行响应式处理,这个过程发生在Observer中
2. 同时对模板执行编译,找到其中的动态绑定的数据,从data中获取并初始化视图,这个过程发生在Compile中
3. 同时定义一个更新函数和watcher,将来应对数据变化时watcher会调用更新函数
4. 由于data的某一个key可能会一个视图中多次出现,所以每一个key都需要一个管家Dep来管理多个watcher
5. 将来data中的数据一旦发生变化,就会找到相对应的Dep,通知说有的watcher进行更新







Expand Down

0 comments on commit 7c5229f

Please sign in to comment.