基于Vue3+TS+ElementPlus+Qiankun构建微应用项目
Hello 大家好,这里是Anyin。
最近打算把一个小型项目(小程序点餐系统)重构为微服务+微应用模式,前端的技术栈打算使用Vue3 + TS + ElementPlus + Qiankun 。这里记录下我在构建基础微应用的过程。
重构后的项目相关地址:
•后端: Anyin Cloud [1]
•前端基座: Anyin Cloud Parent[2]
•前端微应用: Anyin Cloud Base[3]
好了,接下来,我们来看看如何基于 Vue3+TS+ElementPlus+Qiankun 构建我们的微应用项目。
另外说下,这正销猛里为什么不用 Vite 进行构建,原因是 Vite 目前结合 Qiankun 构建为应用还有点问题(采坑了),所以这里就放弃了。
首先,我们使用 vue-cli 创建一个parent项目:
接着,手动选择我们要添加的组件:
我们选择以下组件进行应用的构建,使用空格键进行多选,然后回车即可:
选择vue3.x版本
相关代码风格、路由模式都是使用默认,css编译我们使用less:
相关编码规范我们使用ESLint + Airbnb Config :
最后,完整的选项如下:
当vue-cli帮我们创建好项目,我们进入项目查看下项目目录,如下:
首先,Qiankun的主应用是需要安装依赖的,微应用无需安装依赖,修改配置即可。这里我们先在主应用安装依赖
接着,进行相关微应用配置。我们新增一个 app.ts ,用于记录所有的微应用斗慧的入口:
然后,注册微应用,并导出start方法
导出 start 方法之后,需要在入口处执行该方法
对于整个界面,我们希望整体的布局是这个样子的:
所以,我们在安装 ElementPlus 之后,需要做这样子的布局。
首先,安装 ElementPlus
接着,在 main.ts 引入 ElementPlus 组件,如下:
然后,创建一个布局组件 Layout.vue ,如下:
最后,在App.vue注册该组件
运行起来呈现的效果如下:
微应用的初始化项目同主应用,这里就不详细说明。
微应用无需依赖 Qiankun ,这里我们做一些配置即可。
在 src 目录下新增一个 public-path.js 文件,内容如下:
在 main.ts 引入该文件
新增一个路由配置文件,这里我们创建对应的路由信息,并且兼容独立运行,内容如下:
接着,修改 main.ts 关于实例化的代码,如下:
这里主要是定义个渲染的方法,然后暴露举桥Vue实例,因为等下在微应用的生命周期的钩子会使用到。
对于微应用还需要暴露生命周期的钩子方法,这样子主应用才能够识别,在 main.ts 添加如下方法:
使用 vue 创建项目是没有 vue.config.js 文件的,这里我们手动创建一个,并且配置相关详细,代码如下:
•这里我们导入了 package.json 的 name 字段,因为这里需要和主应用配置的 app.ts 文件的 name 字段一致 • headers 添加跨域配置,因为主应用是通过 fetch 方法来获取微应用的资源的,而微应用是启动在另外一个端口,所以需要添加跨域配置 • output 配置了微应用的打包格式,主应用才能正确识别微应用的一些配置
还记得我们以下这个图不?
我认为 Header 应该是属于主应用,而下面的 Aside 和 Main 都是属于微应用, Aside 块一般都是用于展示菜单,个人认为各个微应用应该各自维护自己的菜单,而不是交由主应用维护。
所以,在微应用,我们还需要处理下左侧的菜单布局。
我们新增一个 Layout.vue 布局文件
至此,Vue3+TS+ElementPlus+Qiankun构建微应用项目的一个基本结构我们已经处理完成,整体运行看下效果:
首页
微应用
好了,基于 Vue3+TS+ElementPlus+Qiankun 的微应用项目基本框架我们已经搭建好了,后续就是慢慢填充一些工具和页面了。
相关源码地址:
•主应用: Anyin Cloud Parent
•微应用: Anyin Cloud Base
[1] Anyin Cloud :
[2] Anyin Cloud Parent:
[3] Anyin Cloud Base:
vue项目前端搭建要多久
做一个简单的项目大约需要一周的时间。
有编程基础的话,画一个差嫌页面一般需要一个星期左右。画好一个页面之后,这个项目还是需要一直来维护的。
vue是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不同的是,Vue被局搏设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易虚腊手于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue也完全能够为复杂的单页应用(SPA)提供驱动。
vue项目创建和部署使用
这周花了两天时间简单研究了下目前非常流行和应用广泛的前端js框架 vue ,作为一个基础的了解。 vue 的作者是国人尤雨溪。官网描述 vue 是一套用于构建用户界面的渐进式框架,可以自底向上逐层应用,它核心只关注视图层,易于上手和便于整合。同时,其可以与现代化的工具链和各种类库结合,用以创建复杂的单页应用。其特点主要有以下几点:
基于 vue 的流行度,日常项目前端有在使用,遂记录这篇文章,主要讲从环境搭建到使用样例。在学习中,体验和完成了一个功能稍微丰富的例子,为简洁起见,本期只展示官方默认例子。鉴于本地也没搜清有nodeJs环境,所以直接从环境搭建开始。
配置淘宝源,注意 -g 是全局安装
完成之后将使用 cnpm 替换 npm ,验证 cnpm :
之后的依赖安装就可以使用 cnpm install package 或简写 cnpm i package 进行。没有代理的情况下,相比npm国内要快很多,也不容易失败。注意可以使用 -g -D --save 等参数设置安装范围。
安装 vue-cli
vue-cli 是官方提供的项目脚手架(可以看做类似服务端开发的maven用于构建的部分),用来进行项目构建等操作,后面我们会继续介绍。它还提供了一个图形界面,用来执行和进行相关配置,对于新手等只关心结果的人,减少了很多的学习成本。
安装命令
验证安装
之后我们看到一个 hello-world 的文件夹,里边包括默认生成的一些配置和 App.vue , main.js 等程序文件,如下镇漏辩是支持 vue-router 路由 (控制页面切换等操作) 的一个 main.js 具体内容
注意使用路由时,不要忘记在主模板里添加 router-view御缺/router-view 标签,表示路由切换的位置,否则路由页面无法正常展示。
先保持默认的demo内容不变,运行如下命令启动一个本地服务来运行
之后会启动对应的服务,通过地址和端口访问,就能看到默认的页面。
既然提到了部署,默认的部署使用 npm/cnpm 进行,如下命令,输出内容在 /dist 目录。
可以使用参数来设置,得到符合不同需要的编译结果。之后即可以将打包的文件部署到服务器上。
这里说下 vue-cli 脚手架所带的图形界面编译打包管理,可使用如下命令开启,然后按照提示,加入需要的项目,可以查看仪表盘展示,进行插件管理,依赖管理,编译配置,以及项目构建的操作,十分方便。
启动 vue-cli 图形界面
然后按照提示访问即可。
以上就是本期的内容,主要是一些初期的准备工作。目前整体了解了vue相关,如渲染,组件化,路由等。总体来说依托 vue 提供的丰富文档和比较好用的工具,以及本身非常高的流行度,在尝试稍微复杂的功能或者遇到问题时,容易找到相关满意的解决方式,总体来说还是比较适合入门的。后续看时间能多熟悉些实际项目,真正用于搭配后端做个可用的项目。
1. Vue.js介绍
2. Vue CLi脚手架
web前端开之网站搭建框架之vue详解
网站搭建框架之vue
Vue是web前端快速搭建网站的框架之一。它与jQuery有所不同,是以数据驱动web界面(以操作数据改变页面,而jQuery是以操作节点来改变页面),同时,vue还实现了数据的双向绑定,可及时响应用户的输入。最主要的是vue的写法简单,容易掌握,组件形式可以大大提高工作效率。
对于vue的使用可以分为两种使用形式:1.引入vue.js文件,在js中将vue实例化;2.通过node安装第三方包--vue,搭建脚手架,用脚手架将页面分成几个组件编写,从而利用组件来搭建页面。
引入vue.js的写法
Vue分为V层(视图层)和M层(数据层),一般都是由M层的数据来驱动V层的改变。而vue的常用指令数量不多且写法模樱简单。常用的有v-html、v-text、v-show、v-if、v-else、v-for、v-bind:、v-model。v-html和v-text都是将数据写进标签内,但它们的不同之处在于v-text会将标签当做文本内容写入
,而v-html则会对标签进行编译,只显示标签内的内容。
至于v-show、v-if、v-else这三个指令都是通过布尔值的判断来执行的,当布尔值为真时,设置了v-show、v-if指令的标签会显示出来,当布尔值为假时,标签隐藏;而v-else与这两个指令相反。除此之外,v-show和v-if、v-else之间也有差别,v-show是改变标签的display属性来使标签显示或隐藏;而v-if、v-else是通过添加或删除节点,来显示或隐藏标签的。
V-for是vue的一种遍历方法,这个方法极大的简化了数组或对象的遍历并显示到页面的步骤
而v-bind:是对html属性或自定义属性的数据驱动方式,格式为v-bind:href,可简写为:href。对于类(class)的操作是通过布尔值来判断增加或者隐藏类,同时。类和样式(style)所接受的数据类型为对象。
V-model指令的作用是将数据进行双向绑定,仅限于输入类型标签。猛码型当用户在页面输入时,数据层的数据会跟着改变。这是VM模式。由v驱动m。
除了这些普通的指令之外,还有事枝猜件指令v-on:,可简写为@+事件名,例如:@click,并将执行函数写到vue的methods中
通过脚手架来写项目的话,可用通过写组件,再将组件引入(注册)到另一个vue文件里拼接在一起,从而构建出一个页面。
(组件书写格式)
(组件整合)
(注册路由)
路由是通过vue-router来实现的,在注册路由的时候要将router实例化。不同的路由跳转不同的页面,这是搭建单页面应用的优势。
而父组件与子组件之间的通讯可以通过props将父组件的信息传递给子组件,改变子组件的内容,这样子组件的复用就不会有障碍了,而子组件传递信息给父组件或者其他组件的通讯则需vuex。
通过引入vuex并实例化一个Vuex.Store作为一个公共平台,将数据进行传输。通过vue的computed方法接收数据,通过methods方法改变数据。而这个公用平台可以实现组件与组件之间的信息传递,从而实现组件之间的交互。
通过一个星期的实战,深深的体会到了vue的优势,在构建移动端这方面的效率很高。但在搭建的过程中,还是少不了与jQuery结合,毕竟每个工具都有其优点,择其优而用是明智的选择。
安装Vue创建前端项目
上一节安装了flask,我们现在需要安装vue前端框架,需要使用vue-cli方便安装和管理。
先要全局安装vue-cli,可以使用下列任一命令安装这个新的包:
你还可以梁携用这个命令来检查其版本是否正确 (3.x):
官方文档
已经安装最新版本的vue-cli,我很推荐这个图形化界面,非常方便。
你也可以通过橡备伏 vue ui 命令以图形化界面创建和管理项目:
图形化的界面就不需要多介绍了,有中文都能很好地使用。
使用Vue项目管理器,选择项目地址flask-vue根目录(上节运行flask示滚老例的文件夹),创建新项目名称vue。根据具体需求选择创建条件完成项目创建,自动跳转至项目详情页。
下一节Flask与Vue的关联。
vue项目完整搭建步骤
为了让一些不太清楚搭建前端项目的小白,更快上手。今天我将一步一步带领你们进行前端项目的搭建。前端开发中需要用到框架,那vue作为三大框架主流之一,在工作中很常用。所以就以vue为例。指档
下载并安装node
下载地址为:
在 nodejs官网下载最新版稳定版的node.js安装,自带了npm工具 ,推荐下载左边的。
检查node是否安装成功
为了更快安装,可以使用淘宝的镜像:
在终端输入以下命令:
检测cnpm是否安装成功
vue-cli是vue脚手架工具缓租,方便打包,部署,测试等。
进入你的项目目录,创建一个基于 webpack 模板的新扰逗兆项目: vue init webpack 项目名
进入项目
安装依赖
此时项目中会多了一个node_modules
启动成功