petite-vue和Vue的比较
petite-vue不止是变得更小,它还是渐进式增强的最佳实践。
Vue不构建或构建都能使用。当通过构建使用时(例如使用单文件组件),Vue预编译所有的模板,所以运行时没有再处理模板。多亏了树摇(three-shaking),我们可以在Vue中提供可选的功能,它们在不使用时并不会增大你打包生成的文件。用构建方式使用这是vue的使用的最佳实践,它更适合构建具有相对繁重交互的 SPA 或应用程序。
通过不构建的方式使用Vue并且挂载到 DOM 内模板,是很不推荐的使用方式,这是因为:
- 我们需要把Vue模板编译器下载到浏览器。(额外多13kb大小)
- 编译器需要从实例化的DOM中获取模板字符串
- 编译器将字符串编译成 JavaScript 渲染函数
- Vue将通过渲染函数新生成的DOM替换到已存在的DOM模板上。
petite-vue通过遍历现有的 DOM 并直接将细粒度的反应效果应用到元素上来避免所有这些开销。DOM就是模板,这意味着petite-vue 在渐进式增强场景中更加的高效。
这也是 Vue 1 的工作方式。这种方法与 DOM 耦合,因此不适合与平台无关的渲染或 JavaScript SSR。我们也失去了使用渲染函数进行高级抽象的能力。但是,正如您可能知道的那样,在渐进增强的场景中不太会需要这些功能。
翻译资料:Comparison with standard Vue.https://github.com/vuejs/petite-vue#comparison-with-standard-vue
总结:
vue不构建使用时,需要从实例化的DOM中读取模板字符串,编译成渲染函数,再替换到已存在的DOM上。
petite-vue是直接遍历DOM,若有更新,则直接应用到DOM上。
petite-vue使用场景:开发大量静态少量交互的页面。它为渐进式增强而生。
If you have strict CSP requirements, you should probably use standard Vue and pre-compile the templates.
推荐学习资料:
【1】如何在不看源码情况下学petite-vue源码.https://zhuanlan.zhihu.com/p/389045348
【2】introduction-to-petite-vue.https://blog.logrocket.com/introduction-to-petite-vue
petite-vue和Vue的比较的更多相关文章
- vue入门 vue与react和Angular的关系和区别
一.为什么学习vue.js vue.js兼具angular.js和react的优点,并且剔除了他们的缺点 官网:http://cn.vuejs.org/ 手册:http://cn.vuejs.org/ ...
- Vue (三) --- Vue 组件开发
------------------------------------------------------------------好心情,会让你峰回路转. 5. 组件化开发 5.1 组件[compo ...
- vue学习:vue+webpack的快速使用指南(新手向)
一.vue有两种使用方式: 1.下载vue.js <script src="vue.js"></script> 2.使用npm npm install vu ...
- Vue 项目 Vue + restfulframework
Vue 项目 Vue + restfulframework 实现登录认证 - django views class MyResponse(): def __init__(self): self.sta ...
- 【vue】vue +element 搭建项目,组件之间通信
父子组件通信 父 通过props属性给 子传递数据 子 操作 父 this.$parent.XXX 子通过$emit传递参数 或者通过vue-bus vue-bus既可以实现父子组件之间的通信,也可 ...
- 【vue】vue +element 搭建项目,vuex中的store使用
概述: 每一个 Vuex 应用的核心就是 store(仓库).“store”基本上就是一个容器,它包含着你的应用中大部分的状态 (state).Vuex 和单纯的全局对象有以下两点不同: Vuex 的 ...
- vue的.vue文件是怎么run起来的(vue-loader)
vue的.vue文件是怎么run起来的(vue-loader) 引子:vue的.vue文件是怎么跑起来的? 答:通过vue-loader,解析.vue文件,在webpack解析,拆解vue组件 1.v ...
- vue学习之用 Vue.js + Vue Router 创建单页应用的几个步骤
通过vue学习一:新建或打开vue项目,创建好项目后,接下来的操作为: src目录重新规划——>新建几个页面——>配置这几个页面的路由——>给根实例注入路由配置 src目录重整 在项 ...
- python 全栈开发,Day89(sorted面试题,Pycharm配置支持vue语法,Vue基础语法,小清单练习)
一.sorted面试题 面试题: [11, 33, 4, 2, 11, 4, 9, 2] 去重并保持原来的顺序 答案1: list1 = [11, 33, 4, 2, 11, 4, 9, 2] ret ...
- import Vue form 'vue’的意思
1.import Vue form ‘vue’ 写全的话是import Vue from ‘…/nodemouls/vue/list/vue.js’: 此时在webpack.base.conf.js中 ...
随机推荐
- Codeforces Round #812 (Div. 2) D. Tournament Countdown(交互题)
记录一下第一次写交互题 题目大意:一共有1<<n个人参加一场竞标赛,需要你通过比较两人的胜场来判断谁晋级,最终获得第一名 最多1/3*2^(n+1)次询问,每次询问query(a,b),如 ...
- 04 uniapp/微信小程序 项目day04
一.加入购物车 1.1 购物车数量 先创建购物车git 这里的数据肯定要做全局数据,因为不能只在details这个页面去操作他,他到底有几个也是由购物车页面获取到的 所以需要vuex 创建store文 ...
- docker清空网络配置
docker 网络 故障 相同的 ip 绑定给了 两个 网卡, 需要 清空 网络 ip addr | grep 10.79 inet 10.79.106.1/24 brd 10.79.106.255 ...
- java学习之SpringMVC拦截器开发
0x00前言 springmvc的拦截器类似于Selvet的Filter,但是所属的操作又不一样 Spring MVC 提供了 Interceptor 拦截器机制,用于请求的预处理和后处理,也就是增强 ...
- 【Virt.Contest】CF1321(div.2)
第一次打虚拟赛. CF 传送门 T1:Contest for Robots 统计 \(r[i]=1\) 且 \(b[i]=0\) 的位数 \(t1\) 和 \(r[i]=0\) 且 \(b[i]=1\ ...
- 领域驱动设计(DDD)在美团点评业务系统的实践
前言 至少 30 年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans 将其定义为领域驱动设计(Domain-Driven Design,简称 DDD).在 ...
- Android Studio运行Failed to find Build Tools revision 30.0.3
问题 第一次安装好Android Studio2022.5的版本之后开启虚拟机运行文件报错提示 Failed to find Build Tools revision 30.0.3 打开SDK已经安装 ...
- go操作Kfaka
目录 1. Kafka介绍 1.1.1. Kafka是什么 1.1.2. Kafka的特点 1.1.3. 常用的场景 1.1.4. Kafka中包含以下基础概念 1.1.5. 消息 1.1.6. 消息 ...
- 【HarmonyOS】ArkTS Native开发——使用 system函数创建文件
ArkTS是HamronyOS优选的主力语言,但官方文档指南中对于Native应用开发并没有详细的描述,只有一篇Codelab可以学习(简易Native C++ 示例(ArkTS) (huawei ...
- docker 第一课
centos安装docker yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo ...