1.安装

  1. vue不支持ie8以下版本(无法模拟ECMAScript5特性),支持所有兼容ECMAScript5的浏览器。

  2. 浏览器安装Vue Devtools, 可以在更友好的界面中审查和调试Vue应用。

  3. 直接下载用script标签引入,Vue会被注册成一个全局变量。

  4. 开发环境不要使用压缩版本,否则没有常见错误的相关警告。生产环境使用压缩版本,是一个更小的构建,获得更快的速度体验。

  5. 用Vue构建大型应用时推荐使用NPM安装,它能很好的和谐webpack、Browserify模块打包器配合使用,

  6. Vue提供了官方的CLI,为单页面应用(SPA)快速搭建繁杂的脚手架。(热重载,保存时lint校验,生产环境可用的构建版本)。

  7. vue.js有多个构建版本(npm包的dist目录下)

    a. 完成版:同时包含编译器和运行时的版本

    b. 编译器:用来将模板字符串编译成JS渲染函数的代码

    c. 运行时:用来创建Vue实例,渲染并处理虚拟Dom等的代码

  8. 客户端编译模板(运行时+编译器),当使用vue-loader或vueify的时候,*.vue文件内部的模板会在构建时预编译成js。

    最终打好的包里是不需要编译器的,只用运行时版本即可。(体积要比完成版体积小大约30%)

    ps. 仍希望使用完整版配置,代码如下:

  1. // webpack
  2. module.exports = {
  3. //..
  4. resolve: {
  5. alias: {
  6. // webpack1时需用'vue/dist/vue.common.js'
  7. 'vue$': 'vue/dist/vue.esm.js'
  8. }
  9. }
  10. }
  1. // rollup
  2. const alias = require('rollup-plugin-alias')
  3. rollup({
  4. //..
  5. plugins: [
  6. alias({
  7. 'vue': require.resolve('vue/dist/vue.esm.js')
  8. })
  9. ]
  10. })
  1. // Browserify,添加到项目的package.json
  2. {
  3. // ..
  4. "browser": {
  5. "vue": "vue/dist/vue.comme.js"
  6. }
  7. }
  1. // parcel,添加到项目的package.json
  2. {
  3. // ..
  4. "alias": {
  5. "vue": "./node_modules/vue/dist/vue.comme.js"
  6. }
  7. }

2.开发环境和生产环境的配置

UMD版本的开发环境/生产环境是硬编码好的,开发环境下用未压缩代码,生产环境下使用压缩代码。

CommonJs和ES Module版本用于打包工具,不提供压缩版本,需要自行压缩。

CommonJs和ES Module虽保留原始的process.env.NODE_ENV检测,以决定运行在什么模式下。但是我们应该使用适当的打包工具替换这个环境变量,来控制Vue运行的模式。

ps. 把process.env.NODE_ENV替换为字符串字面量可以让UglifyJS之类的压缩工具完全丢掉仅供开发环境的代码块,以减少最终文件尺寸.

  1. // webpack4+,使用mode选项
  2. module.exports = {
  3. mode: 'production'
  4. }
  5. // webpack3及更低版本,使用DefinePlugin
  6. var webpack = require('webpack');
  7. module.exports = {
  8. //..
  9. plugins: [
  10. //..
  11. new webpack.DefinePlugin({
  12. 'process.env': {
  13. NODE_ENV: JSON.stringify('production')
  14. }
  15. })
  16. ]
  17. }
  1. // rollup使用rollup-plugin-replace
  2. const replace = require('rollup-plugin-replace')
  3. rollup({
  4. //..
  5. plugins: [
  6. replace: ({
  7. 'process.env.NODE_ENV': JSON.stringify('production')
  8. })
  9. ]
  10. }).then(...)
  1. // Browserify,为包应用一次全局的envify转换
  2. NODE_ENV=production browserify -g envify -e main.js | uglifyjs -c -m > build.js

3.CSP环境

Google Chrome Apps,会强制应用内容安全策略(CSP),不能使用new Function()对表达式求值,这时可以用CSP兼容版本。完整版本依赖该功能编译模板,所以无法在这些环境下使用。

另一方面,运行时版本完全兼容CSP,当通过webpack+vue-loader或者Browserify+vueify构建时,模板将被编译为render函数,可以在CSP环境中完美执行。

4.开发版本(*)

Github仓库的/dist文件夹只有在新版本发布时才会提交,如果想要使用Github上VUE最新的源码,需要自己构建。

  1. git clone https://github.com/vuejs/vue.git node_modules/vue
  2. cd node_module/vue
  3. npm install
  4. npm run build

5.Bower

Bower只提供UMD版本

  1. # 最新稳定版本
  2. $ bower install vue

6.AMD模块加载器

所有UMD版本都可以直接使用AMD模块。

Vue相关知识点记录的更多相关文章

  1. 【记录】vue相关知识点

    let let是es6新引入的命令,与var命令类似,但是let是声明的局部变量,只在所在代码块中有效. ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. var s = ...

  2. vue相关知识点及面试

    ### vue #### vue生命周期 beforeCreated `实例初始化,数据观察和event/watch事件配置之前被调用` created `实例创建后立即调用,数据观测,数据和方法运算 ...

  3. vue相关知识点

    1.el-date-picker输入的时间范围需要两点 A.禁用键盘输入 :editable=false,否则虽然禁用,但是输入框还能输入 B.指定时间范围::picker-options=" ...

  4. 2016年gift上线相关知识点记录

    1.图片初始化加载 2.如何判断横屏 function horAver() { if (window.orientation == 90 || window.orientation == -90) { ...

  5. 学习记录013-NFS相关知识点

    一.NFS相关知识点 1.NFS常用的路径/etc/exports NFS服务主配置文件,配置NFS具体共享服务的地点/usr/sbin/exportfs NFS服务的管理命令,exportfs -a ...

  6. Vue基础01vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令

    自学vue框架,每天记录重要的知识点,与大家分享!有不足之处,希望大家指正. 本篇将讲述:vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令 前期学习基础,使用vue. ...

  7. C#知识点记录

    用于记录C#知识要点. 参考:CLR via C#.C#并发编程.MSDN.百度 记录方式:读每本书,先看一遍,然后第二遍的时候,写笔记. CLR:公共语言运行时(Common Language Ru ...

  8. spring mvc开发过程知识点记录

    给一个客户做的一个小项目,需求就是输入类似一个短网址http://dd.yy/xxxx然后跳转到另外一个域名下的图书文件.(实际很多短网址站都提供API供调用吧,不过客户需求是他自己建立一个短网址服务 ...

  9. Caffe学习系列(二)Caffe代码结构梳理,及相关知识点归纳

    前言: 通过检索论文.书籍.博客,继续学习Caffe,千里之行始于足下,继续努力.将自己学到的一些东西记录下来,方便日后的整理. 正文: 1.代码结构梳理 在终端下运行如下命令,可以查看caffe代码 ...

随机推荐

  1. Spring Cloud Turbine 知识点

    Turbine 默认使用 Eureka 作为注册中心:如果使用 Consul 作为注册中心,需要排除掉 Eureka:pom.xml 如下: <dependency> <groupI ...

  2. python递归和内置方法

    递归:函数调用自身 核心:递进的时候能够达到一个结果,问题规模越来越小(不一定要真正的达到):设置一个条件,能够让最后一次函数调用结束 练习: ​ 第一个人的姓名是16岁,后面每个人的年龄都比前一个大 ...

  3. 【Mybatis】传入参数 对象+单参

    Integer update( @Param(value="bean") TXNJSTXNDetailTBBean bean, @Param(value="table&q ...

  4. hadoop KerberosUtil 做Kerberos认证

    网上找了一下,自己写了个KerberosUtil工具类,测试过可以用. 注意这个不是 org.apache.hadoop.security.authentication.util.KerberosUt ...

  5. 关于Visual Studio源代码文件的行尾

    我们都知道,UNIX只使用换行符(linefeed)来结束每一行,而DOS传统上使用CR+LF来结束每一行,Visual Studio应该完全在DOS世界中,但不管出于什么原因,当我们从代码服务器上获 ...

  6. ESA2GJK1DH1K基础篇: 阿里云物联网平台: 测试云平台显示MQTT客户端发过来的消息

    现在这里空空如也 咱自定义的也没有数据 现在就是传上来温度数据,让这里显示温度数据 你发布的主题  /sys/a1m7er1nJbQ/Mqtt/thing/event/property/post 发布 ...

  7. IE与标准浏览器对事件处理的区别?(监听、阻止冒泡、阻止默认等)

    谷歌 IE:监听:addEventListener   attachEvent--------要在事件名称前面加on解绑:removeEventListener      detachEvent--- ...

  8. luogu p2622关灯问题II

    luogu p2622关灯问题II 题目描述 现有n盏灯,以及m个按钮.每个按钮可以同时控制这n盏灯--按下了第i个按钮,对于所有的灯都有一个效果.按下i按钮对于第j盏灯,是下面3中效果之一:如果a[ ...

  9. 洛谷 P2615 神奇的幻方

    传送门 I'm here! 思路 这个题,我们可以直接去模拟,因为范围很小,且\(N\)都是奇数 直接构造一个矩阵,初始值都为\(0\),然后\(while\)循环,根据题目给出的\(4\)个条件进行 ...

  10. PATA1055 The World's Richest (25 分)

    1055 The World's Richest (25 分) Forbes magazine publishes every year its list of billionaires based ...