安装 | Vue3中文文档

她左右
• 阅读 1471

安装

Vue.js 设计的初衷就包括可以被渐进式地采用。这意味着它可以根据需求以多种方式集成到一个项目中。

将 Vue.js 添加到项目中有三种主要方式。

  1. 在页面上以 CDN package 的形式导入。
  2. 使用 npm 安装它。
  3. 使用官方的 CLI 来构建一个项目,它为现代前端工作流程提供了功能齐备的构建设置 (例如,热重载、保存时的提示等等)。

每个版本的详细发行说明可在 GitHub 上找到。

# Vue Devtools

当前是 Beta 版——Vuex 和 Router 的集成仍然是 WIP

在使用 Vue 时,我们推荐在你的浏览器上安装 Vue Devtools ,它允许你在一个更友好的界面中审查和调试 Vue 应用。

获取 Chrome Extension

获取 Firefox 插件

获取标准的 Electron app

# CDN

对于制作原型或学习,你可以这样使用最新版本

<script src="https://unpkg.com/vue@next"></script> 

对于生产环境,我们推荐链接到一个明确的版本号和构建文件,以避免新版本造成的不可预期的破坏:

# npm

在用 Vue 构建大型应用时推荐使用 npm 安装[1] 。NPM 能很好地和诸如 WebpackBrowserify 模块打包器配合使用。同时 Vue 也提供配套工具来开发单文件组件

# 最新稳定版
$ npm install vue@next 

# 命令行工具 (CLI)

Vue 提供了一个官方的 CLI ,为单页面应用 (SPA) 快速搭建繁杂的脚手架。它为现代前端工作流提供了 batteries-included 的构建设置。只需要几分钟的时间就可以运行起来并带有热重载、保存时 lint 校验,以及生产环境可用的构建版本。更多详情可查阅 Vue CLI 的文档

TIP

CLI 工具假定用户对 Node.js 和相关构建工具有一定程度的了解。如果你是新手,我们强烈建议先在不用构建工具的情况下通读指南,在熟悉 Vue 本身之后再使用 CLI。

对于 Vue 3,你应该使用 npm 上可用的 Vue CLI v4.5 作为 @vue/cli@next。要升级,你应该需要全局重新安装最新版本的 @vue/cli

yarn global add @vue/cli@next
# OR
npm install -g @vue/cli@next 

然后在 Vue 项目运行:

vue upgrade --next 

# Vite

Vite 是一个 web 开发构建工具,由于其原生 ES 模块导入方法,它允许快速提供代码。

通过在终端中运行以下命令,可以使用 Vite 快速构建 Vue 项目。

使用 npm:

$ npm init vite-app <project-name>
$ cd <project-name>
$ npm install
$ npm run dev 

或者 yarn:

$ yarn create vite-app <project-name>
$ cd <project-name>
$ yarn
$ yarn dev 

# 对不同构建版本的解释

npm 包的 dist/ 目录 你将会找到很多不同的 Vue.js 构建版本。这里列出了它们之间的差别:

# 使用 CDN 或没有构建工具

# vue(.runtime).global(.prod).js

  • 若要通过浏览器中的 <script src="..."> 直接使用,则暴露 Vue 全局;
  • 浏览器内模板编译:
    • vue.global.js 是包含编译器和运行时的“完整”构建,因此它支持动态编译模板。
    • vue.runtime.global.js 只包含运行时,并且需要在构建步骤期间预编译模板。
  • 内联所有 Vue 核心内部包——即:它是一个单独的文件,不依赖于其他文件,这意味着你必须导入此文件和此文件中的所有内容,以确保获得相同的代码实例。
  • 包含硬编码的 prod/dev 分支,并且 prod 构建是预先缩小的。使用 *.prod.js 用于生产的文件。

提示

全局打包不是 UMD 构建的,它们被打包成 IIFEs ,并且仅用于通过 <script src="..."> 直接使用。

# vue(.runtime).esm-browser(.prod).js

  • 用于通过原生 ES 模块导入使用 (在浏览器中通过 <script type="module">
  • 与全局构建共享相同的运行时编译、依赖内联和硬编码的 prod/dev 行为。

# 使用构建工具

# vue(.runtime).esm-bundler.js

  • 使用构建工具像 webpackrollupparcel
  • TODO:将 prod/dev 分支留给 process.env.NODE_ENV guards (需要更换构建工具)
  • 不提供最小化版本 (捆绑后与其余代码一起完成)
  • import 依赖 (例如:@vue/runtime-core@vue/runtime-compiler)
    • 导入的依赖项也是 esm bundler 构建,并将依次导入其依赖项 (例如:@vue/runtime-core imports @vue/reactivity)
    • 这意味着你可以单独安装/导入这些依赖,而不会导致这些依赖项的不同实例,但你必须确保它们都为同一版本。
  • 浏览器内模板编译:
  • vue.runtime.esm-bundler.js (默认) 仅运行时,并要求所有模板都要预先编译。这是打包工具的默认入口 (通过 package.json 中的 module 字段),因为在使用 bundler 时,模板通常是预先编译的 (例如:在 *.vue 文件中),你需要将打包工具配置 vue 别名到这个文件

# 对于服务端渲染

  • vue.cjs(.prod).js
    • 或用于 Node.js 通过 require() 进行服务器端渲染。
    • 如果你将应用程序与带有 target: 'node' 的 webpack 打包在一起,并正确地将 vue 外部化,则将加载此构建。
    • dev/prod 文件是预构建的,但是根据 process.env.NODE_env 会自动需要相应的文件。

# 运行时 + 编译器 vs. 仅运行时

如果需要在客户端上编译模板 (即:将字符串传递给 template 选项,或使用其在 DOM 中 HTML 作为模板挂载到元素),你需要编译器,因此需要完整的版本:

//  需要编译器
Vue.createApp({
  template: '<div>{{ hi }}</div>'
})

// 不需要
Vue.createApp({
  render() {
    return Vue.h('div', {}, this.hi)
  }
}) 

当使用 vue-loader 时,*.vue 文件中的模板在生成时预编译为 JavaScript,在最终的打包器中并不需要编译器,因此可以只使用运行时构建。

译者注[1] 对于中国大陆用户,建议将 NPM 源设置为国内的镜像 ,可以大幅提升安装速度。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这