IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue生命周期和计算属性 -> 正文阅读

[JavaScript知识库]vue生命周期和计算属性

昨日响应式原理总结:

1.要知道什么是响应式?zauvue2中响应式是如何实现的

2.数据劫持?对data遍历、递归添加getter/setter.(Object.defineProperty())

3.依赖收集?指令和响应式数据第一次接触时进行收集

4.Wacher ,异步更新队列,完成最终的DOM更新。

生命周期

vue生命周期分为四个阶段(常用的有8个,实际上vue总共有11个)

  • 在beforeCreate之前,Vue做了两件事:methods声明、生命周期钩子函数声明

  • 第一阶段 创建阶段(beforeCreate,created)

  • created一般调接口,开启长连接

  • 在创建阶段有data数据注入、data数据劫持:

    • 1.遍历递归data选项,给每个声明式变量添加setter/getter
    • 2.把劫持过变量都放在组件实列上
  • 在created之后、beforeMount之前,vue做了下面这件事:

    • 1.通过el、template寻找组件试图模板
    • 2.把找到的template视图(带有指令的HTML字符串)编译成render函数
  • 3第二阶段 挂载阶段 (beforeMount,mounted)

  • mounted一般可以调接口、开启长连接、开定时器、执行一些与DOM的操作

  • 在挂载阶段,beforeMount后mounted前vue做了下面这些事

    • 根据render()渲染函数,生成”抽象语法树AST“,再把AST第一次被创建成"虚拟DOM(VNode)"(VNode是真实DOM的一种数据描述,它本质上是json格式的数据)
    • 根据VNode创建真实DOM(背后有依赖收集、Watcher工作)把那些声明式变量都替换成真实数据
    • 编译器第一次执行
  • 第三阶段 更新阶段(beforeUpdate,updated)

  • undated偶尔会用:与一个DOM有关的任务完成了,我们要做点事,可以这里做。

  • 在第三阶段中在beforeUpdate和updated中当data数据发生变化时进入更新阶段

    • 当vue上下文中data发生变化时,使用render()渲染函数再生成一个新的Vnode
    • 使用diff运算,patch(‘old vnode’ , ‘new vnode’)找出两个Vnode之间最小差异。
    • notify通知Watcher根据”依赖收集“再次更新真实DOM
    • 虚拟DOM是MVVM的本质
  • 第四阶段 销毁阶段(beforeDestroy,destroyed)

    • ? 当调用$destroy()或者路由切换时,组件进入销毁阶段
    • 在销毁中vue做了:1拆卸掉Watcher,所以DOM不可能再发生更新
    • 拆卸掉当前组件的所有的子组件,所以这些子组件也都进入销毁阶段
    • 卸载掉当前组件中的事件处理器
  • 在beforeDestroy可以关闭长连接、关闭定时器、清除一些占内存的一些数据缓存

计算属性

计算属性 computed

  • 作用:把复杂的表达式从视图模板抽离出来,放在计算属性中。 1.提高可阅读性 2.可提升性能
  • 计算属性要定义在computed中,它本质是一个函数
  • 计算属性是get操作,所以计算属性可以用在指令上。
  • 计算属性可以当作一个响应式变量来来访问,在js中使用this访问
  • 计算属性在计算过程中,与多个声明式变量相关时,只要有任意一个声明式变量发生变化,计算属性都会重新进行计算,无关的声明式变量发生变化,都不会重新计算
  • 计算属性还可以用在v-model中,但v-model还具有set功能,所以计算属性要拆成get/set的写法

侦听器

侦听器(监听器)watch是vue组件的一个选项,不是响应式原理中的watcher

  • 用于监听一个响应式变量(带有__ ob __)的变化.比如经常监听data、计算属性、vuex、$route等等的变化
  • watch对象放的是函数,但不能用this访问。
  • 当watch函数是箭头语法时,它的this就不再是当前组件实例了

总结:当我们需要根据某个变量的变化时,另一件事要工作时watch

柯里化:在计算机科学中,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:06:15  更:2021-10-21 12:08:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/13 5:57:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码