工作上的一系列原因,导致后面的文章迟迟没有发出,鸽了良久,我感到深深的内疚。今天遇到一个契机,发现了分享和表达的重要性。因此决定,把后续的两篇一起更新了。废话不多说,现在开始吧。传送门:
Vue + ArcGIS API for JavaScript 构建前端GIS应用(一)
Vue + ArcGIS API for JavaScript 构建前端GIS应用(二)
Vue + ArcGIS API for JavaScript 构建前端GIS应用(三)
介绍主要围绕着:
这5个问题去展开。
首先会介绍一些知识点,最后会有一个综合案例,结合前文介绍的内容,利用vue的技术栈构建一个简单的WebGIS前端应用。
p.s.:
Vue + ArcGIS API for JavaScript 构建前端GIS应用(二)中主要是开发前端的一些背景介绍以及Vue的一些基本知识,主要介绍1、2两点
如果觉得简单可以直接看Vue + ArcGIS API for JavaScript 构建前端GIS应用(三)
在正式全面介绍vue之前,首先介绍一下需要了解的两个重要的背景知识,我们在使用vue写前端中许多环节需要他们的支持。
ECMAScript 6简称ES6,他是浏览器脚本语言的标准,而我们熟悉的JavaScript就是这个标准的一个实现。由于JavaScript的影响力非常大,日常场合中,这两个词几乎是等价的。
ES6为脚本语言增加了很多新的特性,为编写大型项目提供了更好的支持。我觉得其中最重要的就是ES6规范了规范化了之前形式多样的js模块化方案,如CommonJS、AMD、CMD等。现在呢,只要使用import关键字就能把js包引用进来,还不需要担心引用顺序问题。
目前,在使用Vue中js脚本编写使用ES6已经成了主流趋势。在后面进行vue介绍时候大家随处可以见到他的影子。想要系统的学习或者当做工具书查阅的话,建议去看阮一峰的es6那本书,有电子版,直接在网页上浏览就行了。
Webpack是一个现代的JS应用程序的静态模块打包器。它运行在node.js中,主要作用是对js源码进行转译与打包,支持不同js模块化模式,还支持不同样式语法(sass、less等)的转译。
目前浏览器对ES6语法规范的兼容性还没有达到100%,需要Webpack进行模块化打包、转译等,让我们既能使用ES6特性,又能解决浏览器兼容性问题。
并且Webpack为开发者提供了良好的开发环境的支持,如Webpack Server就允许用户进行js代码的热更新,用户在开发中改了代码浏览器就能及时更新,不需要刷新。
Vue中的单文件组件(.vue)同样也需要webpack的转译。
从开发到产品打包一整套流程都需要Webpack的支持。
官网给出了对于vue的一个定义:
"Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。"
也就是说vue是一个前端视图层的渐进式框架
vue既可以作为一个普通的js库来使用,不作为项目的核心框架,解决一些具体问题,如表单提交等。同时,vue也可以作为整个应用项目的核心,在vue生态的帮助下可以构建一个完整的、复杂的单页应用(SPA)
react的特色两大特点就是声明式渲染和组件化,vue跟react很类似,也具有这两大特色,同时他还具有丰富的元素操作指令的特点。
声明式渲染: 这里就是声明一个数据与视图的关系,形成一种绑定关系,当数据发生变化的时候,视图也随即会发生变化,这样我们就不需要进行繁杂的DOM操作。
我们来看官方提供的一个案例(声明式渲染)。这里声明了一个vue的实例,在data模块注册了一个状态变量message,并且把这个变量绑定在了html的标签上。这个时候呢,我们只需要改变message变量的内容,视图随即就会发生变化。这个过程中我们是没有进行dom操作的。
丰富的元素操作指令:
vue指令指的是写在html标签里面的以v-作为前缀的指令,他们表示vue提供的特殊特性。他们会在dom上应用特殊的相应行为。
上面讲到的例子都是来源于vue的官网上的,如果大家有空的话可以去看一看,试一试。
组件化应用构建:
刚刚我们演示的例子都是单例vue对象,但是在实际项目中一个vue实例都是又若干个组件组成的,每个组件是完全独立存在的,它包含了可视化的要素、一定的功能逻辑并且带有样式。
这样有助于让开发更简明;可以有效的进行开发任务的分配;如果设计良好,可以高效的复用。
实际上,我们在编写vue工程项目的时候就是在写一个个组件。
允许使用小型、独立和通常可复用的组件构建大型应用,一般同单文件组件( .vue)结合。下图红框中的都代表一个个组件,每个组件都是一个.vue文件,并且为树形结构中节点间的关系,互相之间为父子、兄弟或者更为复杂的嵌套关系。
顾名思义单文件组件意思是一个文件表示一个完整的组件。由template(视图层)、script(脚本)、style(样式)组成。
编写<template>创建组件的可视化要素(标签),写法基本与html相同;
在<script>中使用vue的特性,做数据绑定和业务逻辑的实现;
<style>中可以进行有作用域的样式设置,通过配置style中还支持sass、less等css预处理语言。