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) 一个 ...
随机推荐
- JavaScript ES6函数式编程(二):柯里化、偏应用和组合、管道
上一篇介绍了闭包和高阶函数,这是函数式编程的基础核心.这一篇来看看高阶函数的实战场景. 首先强调两点: 注意闭包的生成位置,清楚作用域链,知道闭包生成后缓存了哪些变量 高阶函数思想:以变量作用域作为根 ...
- 上传文件夹或上传文件到linux
http://jingyan.baidu.com/article/d169e18658995a436611d8ee.html https://www.cnblogs.com/nbf-156cwl/p/ ...
- gojs常用API (中文文档)
常用API 操作类API API 例子 应用场景 添加节点 myDiagram.model.addNodeData(node); var node = {}; node["key&q ...
- Jackson替换fastjson
为什么要替换fastjson 工程里大量使用了fastjson作为序列化和反序列化框架,甚至ORM在处理部分字段也依赖fastjson进行序列化和反序列化.那么作为大量使用的基础框架,为什么还要进行替 ...
- 【python数据分析实战】电影票房数据分析(一)数据采集
目录 1.获取url 2.开始采集 3.存入mysql 本文是爬虫及可视化的练习项目,目标是爬取猫眼票房的全部数据并做可视化分析. 1.获取url 我们先打开猫眼票房http://piaofang.m ...
- cxf 调用 .net webservice
1. 问题背景 现在我们两套语言并行,其中必然会涉及到不同系统的相互访问. .net 的会员信息是用 webservice 提供服务的.那如何对现有 .net webservi ...
- linux 中 NTP 对时过程记录
1.连接需要对时的服务器 $: ntpdate -u 服务器ip地址 2.写对时任务的脚本 #:crontab -e 选择 2(nano编辑): 59 23 * * * /usr/sbin/ntpda ...
- Java并发入门之FutureTask
Java并发入门之FutureTask 前言: 最近遇到一个项目需要上传图片到服务器,API要求是二进制流,那就跑慢点一点点上传. 于是对多线程从没有应用过的我,决定拿多线程直接应用于代码. 应用Ex ...
- OTA升级详解(一)
不积跬步,无以至千里: 不积小流,无以成江海. 出自荀子<劝学篇> 1.概念解释 OTA是何物? 英文解释为 Over The Air,既空中下载的意思,具体指远程无线方式,OTA 技术可 ...
- ORM之单表操作
ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的 ...