Vue3迁移指南
前言Vue 3已经正式发布,我们现有的项目基本都是基于Vue 2进行开发的,如何由Vue 2.x迁移到Vue 3.x,官方文档已经提供了迁移指南,本文是对官方迁移指南的总结。
重大改变Vue 3相较于Vue 2有许多Break Change的重大改变,是我们在迁移时需要重点关注的:
全局API
变更为使用应用程序实例
全局和内部API可以被tree shaking
模版指令
v-model用法的变更
v-for节点上key用法的变更
v-if和v-for优先级的变更
v-bind="object"合并策略的变更
v-for中的ref不再注册为ref数组
组件
只能使用普通函数创建功能组件
functional属性及选项被遗弃
使用defineAsyncComponent创建异步组件
渲染函数
渲染函数的API变更
$scopedSlotsproperty已删除,所有插槽都通过$slots作为函数暴露
自定义指令的API和组组件的生命周期保持一致
某些过渡class被重命名
组件的watch选项和实例的$watch方法不再支持点分隔字符串路径
应用程序容器的in ...
核心Diff算法
前言虚拟DOM的核心之一就是它的Diff算法,其中最为核心的就是核心Diff算法,只有在新旧虚拟DOM的子节点都是多个的时候,核心Diff算法才会派上用场。
无论何种类型的核心Diff算法,它们采用的核心思想是一致的:
1、找到需要移动的节点,并移动它们;
2、添加新的节点;
3、移除不存在的节点。
新旧虚拟DOM子节点的可能情况如下:
旧的children的个数
新的children的个数
操作
1
1
patch
1
0
remove
1
n
remove旧的子节点,mount新的子节点
0
1
mount
0
0
无操作
0
n
mount
n
1
remove旧的子节点,mount新的子节点
n
0
remove
n
n
核心Diff
虚拟DOM的结构123456789export interface VNode { _isVNode: true // _isVNode是一个始终为 true 的值,有了它,我们就可以判断一个对象是否是 VNode 对象 el: Element | ...
基于Hexo的个人博客搭建
前言搭建博客其实很简单,但要注意很多细节问题,之前本人也搭建过博客,那时也踩过一些坑,但是现在重新搭建博客,感觉自己又把之前踩过的坑又踩了一遍。所以为了避免以后搭建博客采坑,所以在此记录一下搭建博客的全流程以及一些注意事项。本文搭建的博客基于Hexo,主题选用Butterfly,使用Travis CI自动部署到Github Pages和Coding Pages上,并在腾讯云上申请个人域名与博客进行绑定。
安装Hexo安装Hexo并初始化博客,这个没啥好说的,按照Hexo官网指示安装初始化即可。
12345$ npm install hexo-cli -g # 全局安装hexo-cli脚手架,如果不想全局安装,那就使用npx安装$ hexo init blog # 初始化博客$ cd blog # 进入博客根目录$ npm install # 安装依赖$ hexo s # 本地预览
使用主题本文的博客使用Butterfly,个人觉得这个主题 ...
nuxt.js
Nuxt.js是什么?
一个基于 Vue.js 的通用应用框架
基于它初始化新项目的基础结构代码,或者在已有 Node.js 项目中使用
预设了利用 Vue.js 开发服务端渲染的应用所需要的各种配置
提供了一种命令叫:nuxt generate,为基于 Vue.js 的应用提供生成对应的静态站点的功能
为 客户端/服务端 这种典型的应用架构模式提供了许多有用的特性,例如异步数据加载、中间件支持、布局支持等
Nuxt.js的特性
基于 Vue.js
自动代码分层
服务端渲染
强大的路由功能,支持异步数据
静态文件服务
ES6/ES7 语法支持
打包和压缩 JS 和 CSS
HTML头部标签管理
本地开发支持热加载
集成ESLint
支持各种样式预处理器: SASS、LESS、 Stylus等等
支持HTTP/2 推送
目录结构1234567891011├── assets/ # 资源目录 assets 用于组织未编译的静态资源如 LESS、SASS 或 JavaScript├── components/ # 组件目录 componen ...
Vue服务器端渲染
1. 服务器端渲染(SSR)简介1.1 什么是服务器端渲染(SSR)?
Vue.js 是构建客户端应用程序的框架
默认情况下浏览器输出Vue组件,生成DOM并操作DOM
服务器端渲染则是服务器端生成静态的HTML字符串,浏览器将静态标记“混合”为客户端可交互的应用程序
服务器渲染的 Vue.js 应用程序也可以被认为是”同构”或”通用”,因为应用程序的大部分代码都可以在服务器和客户端上运行
1.2 为什么使用服务器端渲染(SSR)?与传统 SPA(Single-Page Application - 单页应用程序)相比,服务器端渲染(SSR)的优势主要在于:
更好的 SEO
搜索引擎爬虫抓取工具可以直接查看完全渲染的页面,如果你的应用程序初始展示 loading 菊花图,然后通过 Ajax 获取内容,抓取工具并不会等待异步完成后再行抓取页面内容。
更快的内容到达时间
无需等待所有的 JavaScript 都完成下载并执行,才显示服务器渲染的标记,所以你的用户将会更快速地看到完整渲染的页面。
1.3 使用服务器端渲染(SSR)需要权衡的地方
开发条件所限
...




