接着前面的内容: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学习笔记(二十八)的更多相关文章

  1. Java学习笔记二十八:Java中的接口

    Java中的接口 一:Java的接口: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承 ...

  2. Java基础学习笔记二十八 管家婆综合项目

    本项目为JAVA基础综合项目,主要包括: 熟练View层.Service层.Dao层之间的方法相互调用操作.熟练dbutils操作数据库表完成增删改查. 项目功能分析 查询账务 多条件组合查询账务 添 ...

  3. angular学习笔记(二十八-附2)-$http,$resource中的promise对象

    下面这种promise的用法,我从第一篇$http笔记到$resource笔记中,一直都有用到: HttpREST.factory('cardResource',function($resource) ...

  4. angular学习笔记(二十八-附1)-$resource中的资源的方法

    通过$resource获取到的资源,或者是通过$resource实例化的资源,资源本身就拥有了一些方法,$save,$delete,$remove,可以直接调用来保存该资源: 比如有一个$resour ...

  5. angular学习笔记(二十八)-$http(6)-使用ngResource模块构建RESTful架构

    ngResource模块是angular专门为RESTful架构而设计的一个模块,它提供了'$resource'模块,$resource模块是基于$http的一个封装.下面来看看它的详细用法 1.引入 ...

  6. PHP学习笔记二十八【抽象类】

    <?php //定义一个抽象类.主要用来被继承 //如果一个类继承了抽象类,则它必须实现该抽象类的所有抽象方法(除非它自己也是抽象类) // abstract class Animal{ pub ...

  7. vue2.x学习笔记(十八)

    接着前面的内容:https://www.cnblogs.com/yanggb/p/12629705.html. 处理边界情况 这里记录的都是和处理边界情况有关的功能,即一些需要对vue的规则做一些小调 ...

  8. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

  9. python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码

    python3.4学习笔记(二十六) Python 输出json到文件,让json.dumps输出中文 实例代码 python的json.dumps方法默认会输出成这种格式"\u535a\u ...

  10. python3.4学习笔记(二十五) Python 调用mysql redis实例代码

    python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...

随机推荐

  1. findbugs过滤R.java文件

    在第一次使用findbugs时检查出100多个Bad pratice,仔细一看原来全是R文件里面的类名首字母没有大写导致的. 于是只有自己在findbugs设置界面中添加过滤条件来忽略掉R文件. 在F ...

  2. react axios 跨域访问一个或多个域名

    1.react + axios 跨域访问一个域名 配置非常简单,只需要在当前的 package.json 文件里面配置: "proxy":"http://iot-demo ...

  3. Shell脚本的编写及测试

                                                      Shell脚本的编写及测试 1.1问题 本例要求两个简单的Shell脚本程序,任务目标如下: 编写一 ...

  4. 配置HTTPS网站服务器

                                     配置HTTPS网站服务器    案例1:配置安全Web服务 1.1问题 本例要求为站点http://server0.example.c ...

  5. Epicor support overview支持服务

    提供以下服务项目: •Support services 支持服务•Implementations 实施•Epicor software upgrades 软件升级•Database support & ...

  6. Spring (六):整合Mybatis

    本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...

  7. [SCF+wetest+jmeter]简单云性能压测工具使用方案

    前言 压测太难?局域网压力无法判断服务器网络指标?无法产生非常大的并发量?云性能太贵? 也许我们可以把各种简单的工具拼起来进行压力测试! 准备 https://cloud.tencent.com/pr ...

  8. redis 练习 a的数据库数据迁移到b数据库

    思路 1.从a redis中获取所有的key 2.判断key的类型 3.根据key的类型,判断使用的是set/hset类型 4.set到b redis中(写入到b redis中)

  9. 28.4 Calendar 日历

    /* * Calendar:日历,提供了一些操作年月日时的方法 * 获取 * 修改 * 添加 */ public class CalendarDemo { public static void mai ...

  10. hadoop(三)伪分布模式hdfs文件处理|5

    伪分布模式hdfs 1.启动hsfs 2. 编辑vi hadoop-env.sh image.png image.png 3.配置nameNode和生产文件第地址 [shaozhiqi@hadoop1 ...