vue2.x学习笔记(二十八)
接着前面的内容:https://www.cnblogs.com/yanggb/p/12682573.html。
生产环境部署
以下大多数内容在你使用vue cli的时候都是默认开启的,仅跟你自定义的构建设置有关。
开启生产环境模式
在开发环境下,vue会提供很多的警告来帮助你对付常见的错误与陷阱。而在生产环境下,这些警告语句却没有用,反而会增加应用的体积。此外,有些警告检查还有一些比较小的运行时开销,而这是在生产环境模式下可以避免的。
不使用构建工具的情况
如果使用vue的完整独立版本,即直接用<script>元素引入vue而不提前进行构建,请记得在生产环境下使用压缩后的版本(vue.min.js)。
使用构建工具的情况
当使用webpack或Browserify类似的构建工具时,vue源码会根据【process.env.NODE_ENV】属性来决定是否启用生产环境模式,默认情况为开发环境模式。在webpack与Browserify中都有方法来覆盖此变量,以启用vue的生产环境模式,同时在构建过程中警告语句也会被压缩工具去除。所有这些在vue-cli模板中都预先配置好了,但是了解以下怎样配置会更好。
在webpack4+中,可以使用mode选项:
module.exports = {
mode: 'production'
}
但是在webpack3以及更低的版中中,则需要使用DefinePlugin:
var webpack = require('webpack') module.exports = {
// ...
plugins: [
// ...
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production')
})
]
}
而Browserify或Rollup等其他构建工具也提供了相应的方法,需要时查阅官方文档即可。
模板预编译
当使用dom内模板或javascript内的字符串模板时,模板会在运行时被编译为渲染函数。通常情况下这个过程已经足够快了,但是对性能敏感的应用还是最好避免这种用法。
预编译模板最简单的方式就是使用单文件组件(single-file components),相关的构建设置会自动把预编译处理好,所以构建好的代码已经包含了编译出来的渲染函数而不是原始的模板字符串。
如果你使用webpack,并喜欢分离javascript和模板文件,你可以使用vue-template-loader,它可以在构建过程中把模板文件转换称为javascript渲染函数。
提取组件的CSS
当使用单文件组件的时候,组件内的css会以<style>标签的方式通过javascript动态注入。这有一些小小的运行时开销,如果你使用服务器渲染,这会导致一段【无样式内容闪烁(fouc)】。将所有组件的css提取到同一个文件可以就避免这个问题,也会让css更好地进行压缩和缓存。
查阅这个构建工具各自的文档来了解:
1.webpack+vue-loader(vue-cli的webpack模板已经预先配置好)。
2.Browserify+vueify。
3.Rollup+rollup-plugin-vue。
跟踪运行时的错误
如果在组件渲染的时候出现运行时错误,错误将会被传递至全局【Vue.config.errorHandler】配置函数(如果已经设置)。利用这个钩子函数来配合跟踪服务是个不错的主意,比如在函数中打印出具体的错误信息直接定位错误原因。另外可以使用Sentry插件,它为vue提供了官方集成。
"我还是很喜欢你,像雨洒落热带极地,不远万里。"
vue2.x学习笔记(二十八)的更多相关文章
- Java学习笔记二十八:Java中的接口
Java中的接口 一:Java的接口: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承 ...
- Java基础学习笔记二十八 管家婆综合项目
本项目为JAVA基础综合项目,主要包括: 熟练View层.Service层.Dao层之间的方法相互调用操作.熟练dbutils操作数据库表完成增删改查. 项目功能分析 查询账务 多条件组合查询账务 添 ...
- angular学习笔记(二十八-附2)-$http,$resource中的promise对象
下面这种promise的用法,我从第一篇$http笔记到$resource笔记中,一直都有用到: HttpREST.factory('cardResource',function($resource) ...
- angular学习笔记(二十八-附1)-$resource中的资源的方法
通过$resource获取到的资源,或者是通过$resource实例化的资源,资源本身就拥有了一些方法,$save,$delete,$remove,可以直接调用来保存该资源: 比如有一个$resour ...
- angular学习笔记(二十八)-$http(6)-使用ngResource模块构建RESTful架构
ngResource模块是angular专门为RESTful架构而设计的一个模块,它提供了'$resource'模块,$resource模块是基于$http的一个封装.下面来看看它的详细用法 1.引入 ...
- PHP学习笔记二十八【抽象类】
<?php //定义一个抽象类.主要用来被继承 //如果一个类继承了抽象类,则它必须实现该抽象类的所有抽象方法(除非它自己也是抽象类) // abstract class Animal{ pub ...
- vue2.x学习笔记(十八)
接着前面的内容:https://www.cnblogs.com/yanggb/p/12629705.html. 处理边界情况 这里记录的都是和处理边界情况有关的功能,即一些需要对vue的规则做一些小调 ...
- Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)
在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...
- python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码
python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
随机推荐
- P3381 【模板】最小费用最大流 题解
CSDN同步 原题链接 前置知识: 从三种算法剖析网络流本质 简要题意: 给定网络图,求图的最大流,以及流量为最大流时的最小费用. 现在假设你们看了那篇网络流博客之后,所有人都会了 \(\text{E ...
- pyecharts数据可视化模块
目录 安装 柱状图-Bar 饼图-Pie 箱体图-Boxplot 折线图-Line 雷达图-Rader 散点图-scatter 我们都知道python上的一款可视化工具matplotlib,而前些阵子 ...
- Linux网络安全篇,配置Yum源(一),本地Yum源
1.创建挂载目录 mkdir /mnt/cdrom 2.挂载软件源cdrom mount /dev/cdrom /mnt/cdrom/ 3.建立本地yum源资源文件夹 mkdir /usr/local ...
- JAVA中基础类型和字串类型之间的相互转换
转自:https://www.imooc.com/code/2251 仅做个人学习记录之用,侵删. 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换. 其中,基本类型转换为字符串有三种方法 ...
- 好消息,vue3.0 进入 beta 阶段!
昨天,4 月 16 日,vue 3 正式进入 beta 阶段.同日,尤大参加了 State of Vue 的线上活动,以下是他上传到 google docs 上的 slides : State of ...
- MySQL锁---InnoDB行锁需要注意的细节
前言 换了工作之后,接近半年没有发博客了(一直加班),emmmm.....今天好不容易有时间,记录下工作中遇到的一些问题,接下来应该重拾知识点了.因为新公司工作中MySQL库经常出现查询慢,锁等待,节 ...
- 数据结构和算法(Golang实现)(29)查找算法-2-3树和左倾红黑树
某些教程不区分普通红黑树和左倾红黑树的区别,直接将左倾红黑树拿来教学,并且称其为红黑树,因为左倾红黑树与普通的红黑树相比,实现起来较为简单,容易教学.在这里,我们区分开左倾红黑树和普通红黑树. 红黑树 ...
- java的图形化界面 文本区JTextArea的程序例子
package java1; //使用时这个改成你的包名即可//文本区 JTextArea import javax.swing.*;import java.awt.*;import java ...
- 绕过XSS过滤姿势总结
0x01 弹窗关键字检测绕过 基本WAF都针对常用的弹窗函数做了拦截,如alert().prompt().confirm(),另外还有代码执行函数eval(),想要绕过去也比较简单,我们以alert( ...
- 弱智破解法——用python破解WIFI
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:李嘉图 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...