技术方案
1. IndexedDB
IndexedDB 是一个强大的浏览器内置数据库,具有以下优势:
- 支持存储大量结构化数据
- 支持索引,便于快速检索
- 支持事务,保证数据一致性
- 异步 API,不会阻塞主线程
Vue.js 是一个渐进式JavaScript框架,其源码设计精巧,包含了响应式系统、虚拟DOM、模板编译等核心功能。本文将从源码角度深入分析Vue2的核心实现原理。
vue元素挂载的顺序之分
Vue.prototype.$mount = function (el) {
// 挂载
const vm = this;
const options = vm.$options;
el = document.querySelector(el);
vm.$el = el;
if(!options.render) { // 没有render方法
let template = options.template;
if(!template && el){ // 没有template 但是有el 获取el中的内容
template = el.outerHTML
}
// 将模板编译成render函数
const render = compileToFunctions(template)
options.render = render;
}
// 渲染时用的都是render函数
// 挂载组件
mountComponent(vm,el);
}
一个是定义属性,一个是代理
define 定义 property 属性
(obj , prop , descriptor)
description 叙述、表述
descript 动词
descriptor 描述项集合