vue 开发2017年变化回顾及2018年展望

vue.js 变化

从 github 的发布记录我们可以看到2017年 vue.js 的第一个发布为 v2.1.9,最后一个为 v2.5.13,主要发布小版本 2.2~2.5。这些发布提升了vue 与 TypeScript 的结合、改进了对服务端渲染(SSR)和 native 渲染的支持、提供了更好的测试、开发体验及其他的一些功能与优化。

vue@2.2 变化

1)使用 v-for 必须要添加 key 属性。

2)单文件组件(SFC)标签需要闭合,尽管 html5 中标签没有闭合也是有效的。

3)prop 属性和 computed 属性定义在组件的原型上,而不是作为每个实例自身的属性。

4)更好的错误处理 Vue.config.errorHandler

vue.config.errorHandler = function(err, vm, info) { // handle error}

在 2.2.0+,这个钩子函数可以捕获组件生命周期钩子中产生的错误,如果这个函数为 undefined,捕获的错误将会使用 console.error 打印出来而不会使应用崩溃。

在 2.4.0+,也会捕获 vue 自定义事件的 handler 中抛出的错误。

错误追踪服务如 Sentry 和 Bugsnag 提供了和这个选项的官方集成。

5)Vue.util 中暴露的一些方法和属性被移除了。

6)服务端渲染改进

7)组件自定义 v-model

自定义组件允许使用 v-model 时自定义属性和事件,默认使用 value 属性和 input 事件。

8)provide 和 inject

9)vm.$props

可以通过 this.$props 获取组件当前属性

10)和 支持 duration 属性

11)性能分析 Vue.config.performance

12)keep-alive 增加 activated 和 deactivated 钩子函数

13)vm.$on 支持多事件

14)v-on 支持新的 mouse event 修饰符 .left, .right, .middle

15)使用驼峰风格属性将会警告(实际上单文件组件并没有此问题,因为会自动转化为短横线分隔式命名)

vue@2.3 变化

1)许多重要的服务端渲染的改进,发布了 ssr guide。

2)异步组件改进、函数式组件改进

3).sync 修饰符回归。不过只是一个简单的语法糖,:foo.sync 等价于 :foo="bar" @update:foo="val => var = val",子组件更新 foo 的值时,需要明确地触发事件:

this.$emit('update:foo', newValue)

4)Vue.config.errorHandler 支持自定义指令和 nextTick 回调中抛出的错误

5)v-on 支持 .passive 修饰符

6)属性验证支持 type: Symbol

7)style 绑定支持数组

<div :style="{ display: ["-webkit-box", "-ms-flexbox", "flex"] }">

vue@2.4 变化

1)完全的服务端渲染 + 异步组件支持。这意味着在服务端渲染中异步组件/代码分割不再局限于路由级别。

2)inheritAttrs 选项和 $attrs, $listeners

<div><input v-bind="$attrs" v-on="$listeners">
</div>

3)v-on 支持对象

<button v-on="{ mousedown: doThis, mouseup: doThat }"></button>

4)增加 comments 选项

默认 false,设置为 true 时,将会保留 tempalte 里面的 html 注释

5)服务端渲染性能提升了2~8倍(取决于你的组件可以优化多少)

vue@2.5 变化

1)增加 errorCaptured 钩子来增强错误处理

2)TypeScript 声明改进

3)函数式组件改进

template 支持函数式组件

<template functional><div>{{ props.foo }}</div></template>

4)v-on 改进

添加了 .exact 修饰符

<!-- this will fire even if Alt or Shift is also pressed --><button @click.ctrl="onClick">A</button><!-- this will only fire when only Ctrl is pressed --><button @click.ctrl.exact="onCtrlClick">A</button>

key 修饰符,如:

<input @keyup.page-down="onPageDown">

5)简化的 scoped slot

6)nextTick 内部实现改变

在 v-on 内绑定的事件处理函数中的 DOM 更新延迟由 micro task 改成了 macro task

vue-router 变化

1)传递属性给路由组件

在组件中使用 $route 耦合性非常强,通过传递属性的方式可以解耦,大大增强组件的灵活性。

2)组件内的钩子函数 beforeRouteUpdate

使用这个钩子函数,可以不用像之前那样必须 watch $route

3)router.addRoutes

动态添加路由的利器

4)router.push() 和 router.replace() 支持可选的第二个回调参数(onComplete)和第三个回调参数(onAbort)

5)导航的 next 函数支持接收一个错误作为参数

6)新的 router guard 方法 router.beforeResolve()

7)新的路由实例选项 fallback

控制路由当浏览器不支持 history.pushState 时是否 fallback 到 hash 模式。当服务端渲染需要兼容 ie9 时,设置为 false,因为服务端渲染不能使用 hash 路由模式,而 ie9 不支持 history.pushState。

8)当浏览器支持 history.pushState 时,hash 模式也可以支持 scrollBehavior,同时这个函数也支持返回 Promise。

9)发布了 v3.x,主要是为了兼容 TypeScript。

vuex

vuex 没有大的变化,有添加一下方法。和 vue-router 一样发布了 v3.x,也是为了兼容 TypeScript。

2018 展望

vue 3.x

2018年很有可能发布 Vue 3,这个版本只支持长期更新的浏览器,如 Edge,不会支持 IE。主要改变的是 vue.js 内部,外部 api 会尽量 100% 兼容。对于低版本浏览器,可以使用 vue 2.x,因为2.x 和 3.x 将会同时维护。查看计划

vue-cli 3.x

vue-cli 2.x 暴露了一堆配置,对新手很不友好,更重要是这样很难直观地知道项目相对于默认配置的修改,而且这些配置直接从 github 拉取下来,也没有版本的概念。

vue-cli 3.x 将会只暴露一个配置的 js 文件,并且会预设很多默认配置,可能会类似于 Nuxt.js,具体查看讨论

vue-devtools 4.x(已发布)

新发布的 vue-devtools 比上一个版本强大了很多,支持从页面中选择组件、Inspect DOM、过滤观察的 data/state 等,直接编辑 data 等。

服务端渲染

随着 Nuxt 1.0 正式版本的发布,相信接下来很多公司都会将其用于部分对 SEO 有要求的官网页面。

移动端

weex 和 nativescript-vue 被越来越多的公司用于生产环境了,但是成熟度、流行程度相对于 react 的 react-native 有一段距离。ios11.3 也支持了 Service Workers,也许接下来 PWA 会很流行?

style guide

目前官方只发布了 beta 的 style guide,接下来可能会发布正式版,配合 eslint-plugin-vue 让我们写出更好的 vue 代码。

原文地址:https://www.cnblogs.com/ang-/p/8371330.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sentinel(二十三)之使用Apollo存储规则

转载自 Spring Cloud Alibaba基础教程&#xff1a;Sentinel使用Apollo存储规则 上一篇我们介绍了如何通过Nacos的配置功能来存储限流规则。Apollo是国内用户非常多的配置中心&#xff0c;所以&#xff0c;今天我们继续说说Spring Cloud Alibaba Sentinel中如何将流控规则存储…

Quartz.Net分布式任务管理平台

前言&#xff1a;我相信大多数人公司的业务上都有定时任务这么个功能&#xff0c;我们公司也不例外&#xff0c;刚来公司的时候使用Quartz.Net为我们组做了第一个任务&#xff0c;大致流程是&#xff1a;新建一个控制台程序&#xff0c;引用需要的程序集&#xff0c;Execute方法…

Sentinel(二十四)之Sentinel Dashboard中修改规则同步到ZooKeeper

转载自 Springboot使用Sentinel限流&#xff0c;集成zookeeper完成规则的持久化 上一篇简单介绍了sentinel限流的基本配置和使用&#xff0c;这一篇我们来稍微深入一点&#xff0c;看看如何将zookeeper继承进来&#xff0c;用以保存添加的流控规则。 上一篇中我们启动了dash…

微软Azure AspNetCore微服务实战第2期(内附PPT下载)

2018年1月28日&#xff0c;虽然上海的大雪在城区已经见不到踪影&#xff0c;但还是很冷。不过天气再冷&#xff0c;也阻止不了小伙伴参加活动的热情。感谢王振&#xff0c;苏老师以及微软Azure API Management的产品经理Alvin&#xff0c;给大家带来微服务实战&#xff0c;企业…

Sentinel(二十五)之Sentinel Dashboard同步Apollo存储规则

转载自 Spring Cloud Alibaba基础教程&#xff1a;Sentinel Dashboard同步Apollo存储规则 在之前的两篇教程中我们分别介绍了如何将Sentinel的限流规则存储到Nacos和Apollo中。同时&#xff0c;在文末的思考中&#xff0c;我都指出了这两套整合方案都存在一个不足之处&#…

为什么选择.NETCore?

为什么选择.NETCore&#xff1f;在开展话题之前先出一张ASP.NETCore VS Node.js的性能对比图 ASP.NET Core VS node.js&#xff1a;继续正文&#xff1a;学习新的开发框架是一项巨大的投资。您需要学习如何在新框架中编写&#xff0c;构建&#xff0c;测试&#xff0c;部署…

欢乐纪中某A组赛【2019.7.10】

前言 好烦我最后写对了T1T1T1的808080分结果交错题导致T2T2T2的404040分没了T1T1T1也没拿多那些分。 话说好像ZDYZDYZDY比我还惨 成绩 这里还是按OJOJOJ上的分数排名 JJJ表示初中&#xff0c;HHH表示高中后面加的是几年级 RankRankRankPersonPersonPersonScoreScoreScoreAAA…

用C#编写Linux守护进程

如果要在Red Hat Enterprise Linux上将.NET Core进程作为后台进程运行&#xff0c;则可以创建自定义systemd单元。今天我将为.NET Core编写两个自定义系统单元的例子。一个是运行.NET Core控制台应用程序的一种类型&#xff0c;另一个是运行ASP.NET Core Web应用程序的简单类型…

AWS Lambda现已支持.NET Core 2.0

Amazon宣称.NET Core 2.0现在已经支持AWS Lambda以及无服务器应用程序了。开发者们现在可以使用C#和.NET Core 2.0来为AWS Lambda编写代码和编写运行于AWS的无服务器应用程序了。自2017年2月Amazon开始了对C#编程语言的支持&#xff0c;这使得.NET开发者能够使用.NET Core 1.0运…

Nacos(一)之简介

转载自 什么是 Nacos Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现…

开源纯C#工控网关+组态软件(八)表达式编译器

一、 引子监控画面的主要功能之一就是跟踪下位机变量变化&#xff0c;并将这些变化展现为动画。大部分时候&#xff0c;界面上一个图元组件的某个状态&#xff0c;与单一变量Tag绑定&#xff0c;比如电机的运行态&#xff0c;绑定一个MotorRunning信号&#xff1b;但有些时候…

g4e基础篇#6 了解Git历史记录

Git的版本历史记录采用了与传统集中式版本管理系统完全不同的方式进行组织&#xff0c;在刚开始使用Git的时候我们往往会不知所措&#xff0c;比如看到这样的历史记录。看到这个七拐八拐的图形&#xff0c;你可能完全不知道它代表了什么。其实这正是Git的特别之处&#xff0c;G…

Ray框架QA

Orleans与Akka对比&#xff0c;为什么选用Orleans&#xff1f;答: Akka对参与开发的人员要求更高一些&#xff0c;普遍是专家级别&#xff0c;Orleans框架进一步抽象了一层&#xff0c;结合C#语言特性&#xff0c;能普遍降低开发难度。下面是知乎网友的答案&#xff0c;可以参考…

Nacos(三)之架构

转载自 Nacos 架构 基本架构及概念 服务 (Service) 服务是指一个或一组软件功能&#xff08;例如特定信息的检索或一组操作的执行&#xff09;&#xff0c;其目的是不同的客户端可以为不同的目的重用&#xff08;例如通过跨进程的网络调用&#xff09;。Nacos 支持主流的服务…

ASP.NET Core Razor页面禁用防伪令牌验证

这篇短文中&#xff0c;我将向您介绍如何ASP.NET Core Razor页面中禁用防伪令牌验证。Razor页面是ASP.NET Core 2.0中增加的一个页面控制器框架&#xff0c;用于构建动态的、数据驱动的网站&#xff1b;支持跨平台开发&#xff0c;可以部署到Windows&#xff0c;Unix和Mac操作系…

ASP.NETCore的Kestrel服务器

什么是Kestrel服务器Kestrel是开源的&#xff08;GitHub提供的源代码&#xff09;&#xff0c;事件驱动的异步I / O服务器&#xff0c;用于在任何平台上托管ASP.NET应用程序。这是一个监听服务器和一个命令行界面。您将侦听服务器安装在Windows或Linux服务器上&#xff0c;并在…

Polly组件对微服务场景的价值

Polly是一个开源框架,在github上可以找到,被善友大哥收录,也是.App vNext的一员!App vNext:https://github.com/App-vNextGitHub:https://github.com/App-vNext/PollyNanoFabric是一个开源的微服务架构,也是善友大哥推荐的:https://github.com/geffzhang/NanoFabric对于NanoFab…

Nacos(七)之Spring Cloud集成

转载自 Nacos Spring Cloud 快速开始 本文主要面向 Spring Cloud 的使用者&#xff0c;通过两个示例来介绍如何使用 Nacos 来实现分布式环境下的配置管理和服务注册发现。 关于 Nacos Spring Cloud 的详细文档请参看&#xff1a;Nacos Config 和 Nacos Discovery。 通过 Nac…

.NET Core 2.1中改进的堆栈信息

. NET Core 2.1 现在具有可读的异步堆栈信息&#xff01;使得异步、迭代器和字典 ( key not found ) 中的堆栈更容易追踪&#xff01;这个大胆的主张意味着什么&#xff1f;要知道&#xff0c;为了确定调用 异步 和 迭代器方法的实际重载&#xff0c;&#xff08;这在以前&…

微软高管解读财报:努力创新云基础架构

2月1日&#xff0c;微软发布了该公司截至2017年12月31日的2018年第二财季财报&#xff08;即2017年第四季度&#xff09;。财报显示&#xff0c;微软第二财季营收为289.18亿美元&#xff0c;比上年同期的258.26亿美元增长了12%。受税改与就业法案相关的一次性费用138亿美元的影…