(译)Vue开发2019:你需要知道的那些事儿

如果你是Vue开发的新手,你或许已经听说过很多专业术语,诸如单页面应用,异步组件,服务端渲染等等。

您可能还听说过很多与Vue一起经常被提到的工具和库,比如Vuex, webpack, Vue Cli和Nuxt。

也许你会觉得这无数的术语和工具令人沮丧。你不是一个人这样;各个层次的开发人员都会感受到来自他们所不知道的技术的持久压力,感觉他们应该知道(这些技术)。

试图一次学会所有东西是毫无效果的,因此我在这里将展示一个高阶"知识图谱",它选取了专业Vue开发的关键部分。你可以使用这张图谱为你2019年的学习确定目标。

0.JavaScript和基本的web开发

如果我让你在一本用英语写的书中学习所有这些,你首先必须先学习阅读英语,对吧?(注:原文是阅读汉语,此处根据作者意图改为阅读英语)

类似的,Vue是一个用于构建web用户界面的JavaScript框架。在你使用Vue之前,你必须了解JavaScript和web开发基础。

1.必要的Vue概念

如果你是个Vue开发的菜鸟,你应该首先关注Vue.js的核心生态圈,包括 Vue核心库, Vue RouterVuex.

这些工具将在大多数Vue应用程序中发挥作用,并提供此地图的其他大多数部分所依赖的框架。

Vue核心特性

在最基本的情况下,Vue将web页面与JavaScript保持同步。实现这一点的关键特性是响应式数据和诸如指令和插值这样的模板特性。这些都是第一天要学习的东西。

要构建第一个Vue应用程序,还需要知道如何在web页面中安装Vue,以及了解Vue实例的生命周期。

组件

Vue组件是可复用的、独立的UI元素。你需要知道如何生命组件,以及如何使用属性和事件实现组件间交互。

以及学习如何组合组件也很重要,这是使用Vue构建稳定的、可扩展的应用的基础。

单页面应用

单页面应用(SPA)结构允许一个单独的web页面表现的传统多页面网站一样,而无需用户每次导航时都重载和重构页面。

一旦你将你的"页面"创建为Vue 组件,你可以将每一个组件使用Vue Router, 一个由Vue团队维护的用于构建单页面应用的工具,映射到一个独一无二的路径(path)上。

状态管理

随着应用程序规模的扩大,SPA的许多页面上都有着大量组件,管理全局状态变得很棘手。组件因使用大量属性和事件监听器而变得臃肿。

一种称为“Flux”的特殊模式将你的数据保存在一个可预测且稳定的中央存储中。同样由Vue团队维护的Vuex库帮助你再Vue.js应用中实现Flux。

实际项目中的Vue

你在Part1中获得的所有知识可以被用来构建高性能高效率的Vue应用,虽然是运行在你的本地服务上。然而,如何确保应用在生产环境中稳定运行呢?

如果你想将基于Vue构建的产品交付给真实用户,你还需要知道更多!

项目脚手架

如果你频繁构建Vue应用,你会发现,几乎每个项目中都会用到一些配置、设置和开发工具。

Vue团队维护一个名为Vue CLI的工具,它帮助你在几分钟内构建一个稳定可靠的Vue开发环境。

全栈/已验证app(Full-stack/authenticated apps)

真实的Vue应用通常是数据驱动型用户界面,这些数据通常来自由Node、Laravel、Rails、Django或其他服务器框架编写的安全的API。

或许这些数据由传统的REST API或者GraphQL提供,也或许它们是通过websocket传过来的实时数据。

另外你还应该熟悉通常用于将Vue集成到全堆栈配置中的设计模式,以及在Vue应用程序中保护用户数据安全的各种考虑。

如果正试着决定什么后端最适合你的下一个Vue应用程序,请查看本文

测试

如果你想要在生产环境中构建可维护的可靠的Vue应用,你确实需要提供测试。

在Vue应用中,单元测试确保你的组件总是为给定的输入(也就是属性或用户的输入)提供相同的输出(也就是渲染好的HTML或者事件)。

Vue团队维护一个名为 Vue Test Utils的工具,它允许你在独立的组件中创建和运行测试。

虽然E2E测试与Vue不是特别相关,但它也可以使你的项目更加稳定。Cypress是一个很好的E2E工具,可以通过Vue CLI 3将其添加到项目中。

优化

当你将你的应用部署到远程服务器,用户通过缓慢的链接访问时,它不会有你在开发环境中测试时所体验到的速度和效率。

为了优化Vue app,你可以会使用包括服务端渲染在内的各种技术。在服务端渲染中,Vue程序在服务器端被运行,运行结果被合成到HTML中呈现给用户。

其他优化技术包括异步组件和渲染功能。

3.主要工具

目前为止我们看到的每一项技术都来自Vue.js核心库,或者来自Vue生态系统的工具。 但是Vue不是独立存在的,它只是前端技术栈中的一部分。
高级开发者不应该仅仅熟悉Vue, 还要熟悉一些关键工具,他们将成为Vue项目的一部分。

现代JavaScript和Babel

使用ES5可以有效构建Vue应用,这是被当前几乎每一个浏览器所支持的JavaScript标准。

为了提高Vue开发体验,使用最新的浏览器功能,你可以使用最新的JavaScrip标准ES2015(也就是ES6)中的特性和ES2016及更高版本中的提议特性来构建你的Vue应用。

然而,如果你选择使用现代JavaScript,你将需要一种方式来支持旧的浏览器,否则你的产品将无法为大部分用户服务。

Babel就是为实现这一个工能而生的工具。它的工作就是在你的应用被交付之前将现代特性"转 译"(转化和编译)为标准特性。

Webpack

Webpack是一个模块打包器,这个意思是,如果你的代码是写在不同的模块中(例如,不同的JavaScript文件),Webpack可以将他们构建进一个单一的可被浏览器识别的文件中。

Webpack还可以用作构建流水线,允许你在app打包.之前转换代码,例如,配置使用Babel、Sass或TypeScript,还可以使用一系列插件优化应用程序。

很多开发者发现webpack很难理解,更难配置。但是没有它,Vue的一些最好特性,比如单文件组件,将无法实现。

在最近发布的Vue CLI3中,提供了一种在Vue项目中抽象和自动配置Webpack的解决方案。
这是不是就意味着你不需要去学习它了?不!因为总会有一些必不可免的场景需要你去定制和调试Webpack配置。

TypeScript

TypeScript是JavaScript语言的超集,包含了类型(字符串,布尔,数值等等)。它的目的是帮助你书写稳定可靠的代码,在项目早期捕获bug。

即将在2019年推出的Vue.js3将全部使用TypeScript编写。这并不意味着你必须在你的Vue项目中使用它,但这意味着如果你想为Vue做出贡献,理解它的颞部工作原理,你需要理解TypeScript。

4. Vue框架

基于Vue创建的框架,使你不必从头实现服务端渲染、创建自己的组件库以及其他诸如此类相似的工作。

当前有很多优秀的Vue框架,但在这里我们将介绍其中被广泛使用的很重要的三个框架。

Nuxt.js

如果您想构建高性能的Vue应用程序,当然,您需要基于组件的路由、服务器端呈现、代码分离和其他前沿特性。您还需要一些方便的产品特性,比如SEO标记。

Nuxt.js框架通过其丰富的社区插件提供了所有这些开箱即用的特性,以及更多的特性(如PWA)选项。

如果你想看一个Nuxt.js网站的例子,那你正在做这件事情。

(注:本文摘自 https://vuejsdevelopers.com/网站,由Nuxt.js构建)

Vuetify

谷歌的Material Design标准是一个广泛使用的设计语言指导系统,用于构建美观的、合乎逻辑的用户界面。它被广泛使用在谷歌的产品中,比Andorid和web网站。

Vuetify使用一系列Vue组件实现了Material Design。它允许你使用Material Design的布局和样式,再加上诸如模态框/弹窗/导航条/分页器等的插件,快速构建Vue应用。

NativeScript-Vue

Vue.js是一个用于构建web用户界面的库,如果你想讲它用在原生移动界面,你可以使用NativeScript-Vue来实现。

NativeScript 是一个使用IOS和Android上的原生用户界面组件构建app的系统,而NativeScript-Vue是基于NativeScript的框架,提供了对Vue语法和组件的支持。

其他

在这最后一部分,我们将涉及一些重要但不必要,或者不适合上述分类的概念。

插件开发

如果你想在你的整个项目中复用Vue功能,或者想为Vue生态系统做出贡献,你可以让一个特性以Vue插件的形式安装。

插件是Vue核心库的一个特性,但也有丰富的工具和样板文件可以帮助你创建轻便的Vue代码。

动画

如果您喜欢动画,请查看Vue的过渡系统(transition system),它也是Vue核心的一部分。过渡系统允许你在任何向DOM中添加或从DOM中删除元素时应用动画。

为了制作一个过渡效果,你需要些一些css类来定义想要的动画效果,无论它是淡入/淡出、改变颜色还是任何你喜欢的。Vue会在一个元素从DOM中添加或移除时检测,然后会在添加时添加或移除对应的css类。

渐进式web应用

渐进式Web应用(PWA)与普通的Web应用类似,但性能已经通过改进用户体验的现代功能得到了增强。例如,一个PWA或许包含了离线缓存、服务端渲染、消息推送等等功能。

大部分PWA功能可以通过Vue CLI3插件或诸如Nuxt.js之类的框架轻松添加到vue应用中,但你仍然应该理解其中的关键技术,包括web应用清单(manifest)和服务。

关于本文
作者:@Anthony Gore
原文:https://vuejsdevelopers.com/2018/12/04/vue-js-2019-knowledge-map

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 基于Vue的组件库 https://github.com/ElemeFE/element" element 饿了么...
    不和谐发光体阅读 1,115评论 0 8
  • 如果你是 Vue 开发新手,可能已经听过很多行话术语,比如单页面应用程序、异步组件、服务器端渲染,等等。你可能还听...
    sidney_c阅读 8,386评论 0 101
  • 内容 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 element ★13489...
    秋玄语道阅读 13,691评论 3 116
  • 早上6:30起床,各种洗刷吃喝完毕,8点多出门,开车。天气很好,春日暖阳,心情很放松。虽说近两年很少开车,更...
    若冰2018阅读 221评论 0 3
  • 《火锅》 辣子一倾心亦抖 云腾雾漫鸳锅扭 汹汹沸水血红翻 铁碗盛来当烈酒
    化外愚民阅读 190评论 0 0