Vue学习笔记:Vue组件的核心概念(下)
1.双向绑定和单向数据流:
2.虚拟DOM及KEY属性作用
- jquery:
 
![]()
- vue:
 
![]()
- virtual dom
 
![]()
- 新旧DOM树比较
 
同层级比较:
![]()
- 节点移动
 
- 不带Key移动
 
![]()
- 带Key移动
 
![]()
![]()
- 插入
 
- 有KEY(性能高)
 
![]()
- 节点删除新建
 
(算法因为同层级策略,无法达到最优解)
![]()
3.如何触发组件更新
数据驱动
任何修改DOM的行为都是在作死!
![]()
数据来源(单向)
![]()
状态data和属性props
- 状态是组件自身的数据
 - 属性是来自父组件数据
 - 状态改变未必会出发更新
 - 属性改变未必会出发更新
 
响应式更新原理
![]()
4.计算属性和侦听器
计算属性:
可以在里面写些逻辑的属性
好处:
- 减少模板中计算逻辑
 - 数据缓存
 - 依赖固定数据类型(响应式数据)
 
侦听器
好处:
- 更加灵活,通用
 - 可以执行任何逻辑,如函数节流,ajax异步获取数据,甚至操作节点。
 
二者区别
- 计算属性能做的,侦听器都能做,反之则不行
 - 能用计算属性的尽量用它
 
5.生命周期的应用场景和函数式组件
生命周期
![]()
创建阶段分解
![]()
更新阶段分解
![]()
销毁阶段分解
![]()
函数式组件
- 申明:functional:true
 - 无状态,无实例,没有this上下文,无生命周期
 - 用途:临时变量用来存储重复计算
 
可以简单的认为他是一个方法,它的用法不同于计算属性:
- 必须依赖响应式数据;
 - 模板中需要依赖v-for,v-if
 - 可能依赖全局数据
 
TempVar.js
![]()
![]()
Vue学习笔记:Vue组件的核心概念(下)的更多相关文章
- vue学习笔记(八)组件校验&通信
		
前言 在上一章博客的内容中vue学习笔记(七)组件我们初步的认识了组件,并学会了如何定义局部组件和全局组件,上一篇内容仅仅只是对组件一个简单的入门,并没有深入的了解组件当中的其它机制,本篇博客将会带大 ...
 - Vue学习笔记-Vue.js-2.X 学习(三)===>组件化高级
		
(四) 组件化高级 1.插槽(slot)的基本使用 A:基本使用: <slot></slot> B:默认置:<slot><h1>中间可以放默认值< ...
 - Vue学习笔记-Vue.js-2.X 学习(二)===>组件化开发
		
===重点重点开始 ========================== (三) 组件化开发 1.创建组件构造器: Vue.extends() 2.注册组件: Vue.component() 3.使用 ...
 - Vue学习笔记-Vue.js-2.X 学习(一)===>基本知识学习
		
一 使用环境: windows 7 64位操作系统 二 IDE:VSCode/PyCharm 三 Vue.js官网: https://cn.vuejs.org/ 四 下载安装引用 方式1:直接 ...
 - Vue学习笔记-Vue.js-2.X 学习(六)===>脚手架Vue-CLI(项目说明-Babel)
		
五 Vue学习-vue-cli脚手架学习(创建只选一个选项:Babel) 1. 项目目录说明 node_modules : 包管理文件夹 public : 静态资源 src : 源代码 gitign ...
 - Vue学习笔记-Vue.js-2.X 学习(五)===>脚手架Vue-CLI(PyCharm)
		
Vue项目在pycharm中配置 退出运行: ctrl+c Vue学习笔记-Vue.js-2.X 学习(六)===>脚手架Vue-CLI(项目说明)
 - Vue学习笔记-Vue.js-2.X 学习(四)===>脚手架Vue-CLI(基本工作和创建)
		
(五) 脚手架Vue-CLI 一 Vue-CLI前提(nodejs和webpack) 二 Vue学习-nodejs按装配置,Node.js 就是运行在服务端的 JavaScript. 1. 去nod ...
 - Vue学习笔记-Vue基础入门
		
此篇文章是本人在学习Vue是做的部分笔记的一个整理,内容不是很全面,希望能对阅读文章的同学有点帮助. 什么是Vue? Vue.js (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式 ...
 - Vue学习笔记-Vue.js-2.X 学习(七)===>脚手架Vue-CLI(路由Router)
		
脚手架Vue-CLI(路由Router) 一 按装(通过新创建脚手架按装),如果在原来的脚手架上按装直接进图型化界面vue ui的插件按装. 二 使用(上面按装下面步骤自动会生成) 第一步:导入路由对 ...
 - Elasticsearch学习笔记(六)核心概念和分片shard机制
		
一.核心概念 1.近实时(Near Realtime NRT) (1)从写入数据到数据可以被搜索到有一个小延迟(大概1秒): (2)基于es执行搜索和分析可以达到秒级 2.集群(Cluster) 一个 ...
 
随机推荐
- 小白学 Python(3):基础数据类型(下)
			
人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串. ...
 - netty源码解解析(4.0)-25 ByteBuf内存池:PoolArena-PoolChunk
			
PoolArena实现了用于高效分配和释放内存,并尽可能减少内存碎片的内存池,这个内存管理实现使用PageRun/PoolSubpage算法.分析代码之前,先熟悉一些重要的概念: page: 页,一个 ...
 - 元素定位之css选择器(2)
			
理论学习地址:https://www.runoob.com/cssref/css-selectors.html 定位思路: 先在单元素范围内选择查找id或name,定位不到的话往上查扩大范围 使用实例 ...
 - Linux对目录操作命令
			
cd /home 进入 '/ home' 目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd 进入个人的主目录 cd ~u ...
 - Helm神器,让管理Kubernetes像yum安装包一样简单
			
目录 一.什么是Helm 二.安装 1.安装helm客户端 2.安装Tiller 3.创建服务端 4.给Tiller授权 5.为 Tiller 设置帐号 6.验证Tiller是否安装成功 三.Helm ...
 - JSONP安全防御要点
			
严格安全地实现CSRF方式调用JSON文件:限制Referer.部署一次性token等. 严格安装JSON格式标准输出Content-Type及编码(Content-Type: application ...
 - django-MVT设计模式
			
MVT:Models.Views.Templates Model:封装数据库,对数据库进行访问,对数据进行增删查改等. View:业务逻辑的一些操作. Templates:展示. 而MVC主要的流程如 ...
 - 快速学习ggplot2
			
R语言里面一个比较重要的绘图包——ggplot2,是由Hadley Wickham于2005年创建,于2012年四月进行了重大更新,作者目前的工作是重写代码,简化语法,方便用户开发和使用.ggplot ...
 - 这一次,彻底理解Promise源码思想
			
关于Promise的源码实现,网上有太多答案,我也看过很多资料,但都不是很明白.直到有一天我学完函数式编程之函子的概念,才对Promise源码有了更深刻的认识.今天,就让我们来重新认识一下Promis ...
 - 让你的sql开启氮气加速
			
事情的过程是:公司有一个上百行的sql 运行在MySQL数据库,速度奇慢无比,逻辑乱七八糟,我就不贴出来了,经过这次修改想总结一下如何写一个不被人骂的sql. 说一些被人诟病的问题: 一.子查询 把你 ...