Vue相关知识点记录
1.安装
vue不支持ie8以下版本(无法模拟ECMAScript5特性),支持所有兼容ECMAScript5的浏览器。
浏览器安装Vue Devtools, 可以在更友好的界面中审查和调试Vue应用。
直接下载用script标签引入,Vue会被注册成一个全局变量。
开发环境不要使用压缩版本,否则没有常见错误的相关警告。生产环境使用压缩版本,是一个更小的构建,获得更快的速度体验。
用Vue构建大型应用时推荐使用NPM安装,它能很好的和谐webpack、Browserify模块打包器配合使用,
Vue提供了官方的CLI,为单页面应用(SPA)快速搭建繁杂的脚手架。(热重载,保存时lint校验,生产环境可用的构建版本)。
vue.js有多个构建版本(npm包的dist目录下)
a. 完成版:同时包含编译器和运行时的版本
b. 编译器:用来将模板字符串编译成JS渲染函数的代码
c. 运行时:用来创建Vue实例,渲染并处理虚拟Dom等的代码客户端编译模板(运行时+编译器),当使用vue-loader或vueify的时候,*.vue文件内部的模板会在构建时预编译成js。
最终打好的包里是不需要编译器的,只用运行时版本即可。(体积要比完成版体积小大约30%)
ps. 仍希望使用完整版配置,代码如下:
// webpack
module.exports = {
//..
resolve: {
alias: {
// webpack1时需用'vue/dist/vue.common.js'
'vue$': 'vue/dist/vue.esm.js'
}
}
}
// rollup
const alias = require('rollup-plugin-alias')
rollup({
//..
plugins: [
alias({
'vue': require.resolve('vue/dist/vue.esm.js')
})
]
})
// Browserify,添加到项目的package.json
{
// ..
"browser": {
"vue": "vue/dist/vue.comme.js"
}
}
// parcel,添加到项目的package.json
{
// ..
"alias": {
"vue": "./node_modules/vue/dist/vue.comme.js"
}
}
2.开发环境和生产环境的配置
UMD版本的开发环境/生产环境是硬编码好的,开发环境下用未压缩代码,生产环境下使用压缩代码。
CommonJs和ES Module版本用于打包工具,不提供压缩版本,需要自行压缩。
CommonJs和ES Module虽保留原始的process.env.NODE_ENV检测,以决定运行在什么模式下。但是我们应该使用适当的打包工具替换这个环境变量,来控制Vue运行的模式。
ps. 把process.env.NODE_ENV替换为字符串字面量可以让UglifyJS之类的压缩工具完全丢掉仅供开发环境的代码块,以减少最终文件尺寸.
// 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')
}
})
]
}
// rollup使用rollup-plugin-replace
const replace = require('rollup-plugin-replace')
rollup({
//..
plugins: [
replace: ({
'process.env.NODE_ENV': JSON.stringify('production')
})
]
}).then(...)
// Browserify,为包应用一次全局的envify转换
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最新的源码,需要自己构建。
git clone https://github.com/vuejs/vue.git node_modules/vue
cd node_module/vue
npm install
npm run build
5.Bower
Bower只提供UMD版本
# 最新稳定版本
$ bower install vue
6.AMD模块加载器
所有UMD版本都可以直接使用AMD模块。
Vue相关知识点记录的更多相关文章
- 【记录】vue相关知识点
let let是es6新引入的命令,与var命令类似,但是let是声明的局部变量,只在所在代码块中有效. ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景. var s = ...
- vue相关知识点及面试
### vue #### vue生命周期 beforeCreated `实例初始化,数据观察和event/watch事件配置之前被调用` created `实例创建后立即调用,数据观测,数据和方法运算 ...
- vue相关知识点
1.el-date-picker输入的时间范围需要两点 A.禁用键盘输入 :editable=false,否则虽然禁用,但是输入框还能输入 B.指定时间范围::picker-options=" ...
- 2016年gift上线相关知识点记录
1.图片初始化加载 2.如何判断横屏 function horAver() { if (window.orientation == 90 || window.orientation == -90) { ...
- 学习记录013-NFS相关知识点
一.NFS相关知识点 1.NFS常用的路径/etc/exports NFS服务主配置文件,配置NFS具体共享服务的地点/usr/sbin/exportfs NFS服务的管理命令,exportfs -a ...
- Vue基础01vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令
自学vue框架,每天记录重要的知识点,与大家分享!有不足之处,希望大家指正. 本篇将讲述:vue的基本示例,vue的双向数据绑定,vue中常见的几种用法,vue相关常见指令 前期学习基础,使用vue. ...
- C#知识点记录
用于记录C#知识要点. 参考:CLR via C#.C#并发编程.MSDN.百度 记录方式:读每本书,先看一遍,然后第二遍的时候,写笔记. CLR:公共语言运行时(Common Language Ru ...
- spring mvc开发过程知识点记录
给一个客户做的一个小项目,需求就是输入类似一个短网址http://dd.yy/xxxx然后跳转到另外一个域名下的图书文件.(实际很多短网址站都提供API供调用吧,不过客户需求是他自己建立一个短网址服务 ...
- Caffe学习系列(二)Caffe代码结构梳理,及相关知识点归纳
前言: 通过检索论文.书籍.博客,继续学习Caffe,千里之行始于足下,继续努力.将自己学到的一些东西记录下来,方便日后的整理. 正文: 1.代码结构梳理 在终端下运行如下命令,可以查看caffe代码 ...
随机推荐
- Kubernetes Pod的数据卷Volume
概述 由于容器本身是非持久化的,因此需要解决在容器中运行应用程序遇到的一些问题.首先,当容器崩溃时,kubelet将重新启动容器,但是写入容器的文件将会丢失,容器将会以镜像的初始状态重新开始:第二,在 ...
- mybatis框架,使用foreach实现复杂结果的查询--循环List集合方式
需求,根据用户角色列表 查询用户列表信息 之前我们传入的参数是Array,一个数组的形式,现在我们传入的是一个List集合,其他条件没有变化. /** * 需求:传入指定的用户角色,用户角色有1-n ...
- RabbitMQ六种队列模式-工作队列模式
前言 RabbitMQ六种队列模式-简单队列RabbitMQ六种队列模式-工作队列 [本文]RabbitMQ六种队列模式-发布订阅RabbitMQ六种队列模式-路由模式RabbitMQ六种队列模式-主 ...
- ESA2GJK1DH1K升级篇: STM32远程乒乓升级,基于WIFI模块AT指令TCP透传方式,定时访问升级(含有数据校验)
实现功能概要 定时使用http访问云端的程序版本,如果版本不一致,然后通过http下载最新的升级文件,实现升级. 测试准备工作(默认访问我的服务器,改为自己的服务器,请看后面说明) 一,下载BootL ...
- [RN] Android 设备adb连接后unauthorized解决方法
Android 设备adb连接后unauthorized解决方法 安卓设备usb或者adbwireless连接后输入adb device后都是未授权状态 相信很多同学都会遇到这种情况,除了一直重复开关 ...
- postcss 将px转换成rem vuecli3+vant+vue+postcss
1.安装 npm install postcss-pxtorem --save 2.找到postcss.config.js 默认是这样 module.exports = { "plugins ...
- struts2.xml 中result type属性说明
chain 用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息. com.opensymphony.xwork2.Acti ...
- linux shell提示输入 输错字符解决方法
linux shell提示输入 输错字符解决方法ctrl+回车 删除单个字符ctrl+u删除光标前全部字符ctrl+k删除光标后全部字符
- [转帖]Kubesphere all-in-one 安装方式.
All-in-One 模式 对于首次接触 KubeSphere 高级版的用户,想寻找一个最快安装和体验 KubeSphere 高级版核心功能的方式,all-in-one 模式支持一键安装 KubeSp ...
- php 求商数和余数 的函数
//返回两数相除之商和余数function get_div_and_mod($left_operand, $right_operand){ $div = intval($left_operand / ...