Vue | 01 安装

news/2024/7/10 2:36:30 标签: Vue, frontend technology, framework

对于兼容性解释

Vue不支持IE8和以下的浏览器,因为它所使用的ECMAScript 5的特性在IE8是不可调的,然而它支持所有兼容ECMAScript 5的浏览器。

Vue__4">Vue 开发工具

Vue推荐在浏览器中使用 Vue Devtools,可以使你检查和调试Vue界面更加友好。

Vue_Devtools_8">如何在Chrome中安装Vue Devtools

下载链接:Get the Chrome Extension (beta)

  1. 在Chrome浏览器点击以上链接,点击如下Add to Chrome按钮即可。
    <a class=Vue.js devtools download" />
  2. 询问权限,点击添加扩展程序,即可安装完成。
    add extension alert
  3. 打开浏览器的开发者工具选项,找到Vue调试。
    <a class=Vue debug interface" />

    Vue调试工具界面快捷键注解:

    Command + 1: 切换到组件

    Command + 2: 切换到Vuex

    Command + 3:切换到Events

    Command + ⇧ + R: 强制刷新

直接用script标签导入

简单地下载并用script标签导入,Vue将被注册为一个全局变量。

在开发环境不要使用压缩版本,否则将丢失掉常见错误的警告!

Development Version:拥有完整的警告和调试模式

Prodution Version:警告被去除,30.90KB min+gzip

CDN

我们推荐链接到一个具体的版本号以便你能够手动更新

Vue"><script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>

在cdn.jsdelivr.net/npm/vue浏览NPM包的源代码。

Vue在 unpkg 和 cdnjs 获取(cdnjs需要一些时间同步所以最新的版本可能还没有)。

确保你读了关于 Vue的不同构建版本 和使用生产版去发布你的网站,用vue.min.js去替换vue.js.这是一个为了速度而不是为了开发体验而优化的更小的构建。

NPM

使用Vue构建更大级别的应用推荐使用NPM的安装方法,因为它对 Webpack 或 Browserify等模块配对更友好。Vue也提供了用于编写单独文件组件的工具 Single File Components。

// 最新的稳定版
$ npm install vue

CLI

命令行工具CLI(Command Line Interface)

Vue提供了一个官方的CLI official CLI 为快速构建理想的单页面应用(SPA)。 它提供了batteries-included的安装设置为一个现代化的前端工作流,它只需要几分钟就可以运行起来,并带有热重载,保存时lint校验,以及生产环境可用的构建版本。对于更详细的查看the Vue CLI docs 。

CLI假定你掌握了一些Node.js的知识和相关的构建工具,如果你是vue或前端新手,我们强烈建议你在使用CLI之前,在不使用任何构建工具的情况下通读指南the guide,而后再使用CLI。

不同版本的解释

在dist/ (directory of the NPM package)目录下,你会发现不同的Vue.js构建,这里有一个概述对于他们之间的不同。分别对应:完整版、运行时版、完整版(生产环境)、运行时版(生产环境)

UMDCommonJSES Module
Fullvue.jsvue.common.jsvue.esm.js
Runtime-onlyvue.runtime.jsvue.runtime.common.jsvue.runtime.esm.js
Full (production)vue.min.js--
Runtime-only (production)vue.runtime.min.js--

术语解释

  • Full-完整版:同时包含编译器和运行时版本
  • Compiler-编译器:代码负责将模板字符串编译成JavaScript渲染函数的代码。
  • Runtime-运行时:代码负责创建Vue实例,渲染和修补虚拟的DOM,例如:基本上是剪掉了编译器的所有东西。
  • UMD:UMD的版本能够通过script标签在浏览器中直接使用,在jsDelivr CDN 的 https://cdn.jsdelivr.net/npm/vue 默认文件是Runtime + Complier UMD版本(vue.js)。
  • CommonJS: CommonJS是为了与老的打包工具一起使用像browserify或webpack 1.这些打包器(pkg.main)的默认文件是只包含运行时的CommonJS 版本(vue.runtime.common.js)。
  • ES Module:ES module版本 是为了与现代化的打包器一起使用,比如webpack 2 或 rollup。这写打包器(pkg.main)的默认文件是只包含运行时的ES Module 版本(vue.rutime.esm.js)。

Runtime + Compiler(运行时 + 编译器) vs. Runtime-only(只包含运行时)

如果你需要在客户端编译模板(e.g.传入一个字符串给template选项),或挂载到一个元素使用DOM内部的 HTML作为模板,你将需要编译器,因此需要完整版:

// this requires the compiler
new Vue({
    Template:<div>{{ hi }}<div>'
})

// this does not
new Vue({
    render (h) {
      Return h(‘div’, this.hi)
  }
})

当使用 vue-loadervueify的时候,模板里面的*.vue文件会在构建时被预编译进JavaScript里,在最终打好的包中并不需要编译器,因此使用只含运行时的版本。

由于只含runtime的版本比完整的版本小了30%,无论何时只要可能尽量使用它,如果你仍然希望使用全的版本替代,你需要在你的打包器配置一个别名。

Webpack
module.exports = {
  // ...
  resolve: {
    alias: {
      'vue$': 'vue/dist/vue.esm.js' // 'vue/dist/vue.common.js' for webpack 1
    }
  }
}
Rollup
const alias = require('rollup-plugin-alias')

rollup({
  // ...
  plugins: [
    alias({
      'vue': 'vue/dist/vue.esm.js'
    })
  ]
})
Browserify

添加到你的项目的package.json文件:

{
  // ...
  "browser": {
    "vue": "vue/dist/vue.common.js"
  }
}
Parcel

添加到你的工程的package.json文件:

{
  // ...
  "alias": {
    "vue" : "./node_modules/vue/dist/vue.common.js"
  }
}

开发环境 vs. 生产环境模式

对于UMD的版本来说,开发环境或生产环境模式是一种硬编码好的:开发环境使用的是非压缩文件,生产环境使用的是压缩的文件。

CommonJS 和 ES Module是为了打包工具而设计的,因此我们不提供压缩的版本,你自己负责压缩最终的包。

CommonJS 和 ES Module还保留了原始的process.env.NODE_ENV检测,来决定哪个模式应该被运行。为了去控制哪种模式在Vue中运行,你应该使用合适的打包工具配置去替换这些环境变量。用字符串的字面值去替换process.env.NODE_ENV也允许像UglifyJS的压缩工具去除仅仅开发环境的代码块,减少最终文件的尺寸。

Webpack

在Webpack 4+中,你可以使用mode选项。

module.exports = {
  mode: 'production'
}

但是在Webpack 3 和更底版本,你需要使用DefinePlugin:

var webpack = require('webpack')

module.exports = {
  // ...
  plugins: [
    // ...
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: JSON.stringify('production')
      }
    })
  ]
}
Rollup

Use 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

也可以看生产环境部署建议 Production Deployment Tips.

CSP 环境

有些环境,像Google Chrome Apps,会强制执行内容安全协议 Content Security Policy(CSP),禁止使用new Function() 来为表达式求值。完整版依赖这个特性去编译模板,所以这些环境是不可用的。

另一方面,只含运行时的版本完全兼容CSP,当使用 Webpack + vue-loader 或 Browserify + vueify的时候,你的模板将会被预编译为render函数,一组在CSP环境下完美工作的函数。

开发版本

重要:在GitHub上的/dsit文件夹的构建文件只在版本发布后提交,为了使用GitHub上的Vue最新代码,你必须自己构建它。

git clone https://github.com/vuejs/vue.git node_modules/vue
cd node_modules/vue
npm install
npm run build

Bower

在Bower只提供UMD版本。

# latest stable
$ bower install vue

AMD 模块加载器

所有的UMD版本能够被直接用作AMD模块。


参考:
vue official guide


http://www.niftyadmin.cn/n/1035796.html

相关文章

第一行代第六章——详解持久化技术

知识点目录6.1 持久化技术简介6.2文件存储6.2.1将数据存储到文件中6.2.2 从文件中读取数据6.3 SharedPreferences存储6.3.1 将数据存储到SharedPreferences中6.4 SQLite数据库存储6.4.1 创建数据库6.1 持久化技术简介 Android主要提供了3种方式用于实现数据持久化功能&#xf…

Vue | 02 入门

什么是Vue.js? Vue&#xff08;读/vjuː/&#xff09;是一个用于构建用户界面的渐进式框架&#xff0c;不同于其它的大框架&#xff0c;Vue是被设计为自底向上适应的&#xff0c;核心库集中在视图层&#xff0c;容易使用以及和其它的库或已经存在的项目集成。另一方面&#x…

第一行代码第七章——探究内容提供器

目录7.1 内容提供器简介7.2 运行权限7.2.1 Android权限机制详解7.2.2 在程序运行时申请权限7.3 访问其他程序中的数据7.3.1 ContentResolver的基本用法7.1 内容提供器简介 内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能。它提供了一套完整的机…

Vue | 03 实例

创建一个Vue实例 每一个Vue应用都需要从使用Vue函数创建一个Vue实例开始&#xff1a; var vm new Vue({//options })虽然和 MVVM pattern 不太相关&#xff0c;Vue的设计部分来自于它的灵感&#xff0c;例如习惯上&#xff0c;我们常常使用vm&#xff08;ViewModel的简写&am…

设计模式 单例

目录概念&#xff1a;常见应用场景优缺点&#xff1a;实现方式&#xff1a;1.饿汉式实现2.懒汉式实现3.双重检测琐式&#xff08;一般不用&#xff09;4.静态内部类的实现&#xff08;懒加载&#xff09;5.枚举实现方式概念&#xff1a; 单例&#xff1a;保证一个类&#xff0…

设计模式 工厂模式

目录工厂模式概念&#xff1a;1.详细分类简单工厂模式工厂方法模式抽象工厂2.简单工厂&#xff1a;工厂模式概念&#xff1a; 实现了创建者和调用者的分离 1.详细分类 简单工厂模式 用来生产同一等级结构中的任意产品&#xff08;对于增加的新产品&#xff0c;需要修改已有…

Vue | 04 模板语法

内容提要&#xff1a; 如何在HTML中插入值&#xff08;包括插入纯文本、生成原生HTML、属性绑定v-bind、JavaScript表达式的使用&#xff09;指令&#xff08;指令的表示方式、参数与修饰符的含义、写法、用法&#xff09;速记&#xff08;速记的意义、使用场景、v-bind和v-on…

通过position属性实现文本在页面中的任意位置

页面文本根据需求需要实现位置的自由设置&#xff0c;需要使用属性position来实现&#xff0c;Demo代码如下所示&#xff1a; <!doctype html> <html> <head> <meta charset"utf-8"> <title>position文本定位</title> <style…