AngularJs项目转Vue项目技术方案

AngularJs项目转Vue项目技术方案

一、需求背景

       现项目需要根据已有项目的工程,转换成h5页面,对接第三方APP,业务逻辑、样式等实现全部依据原项目,把原项目AngularJs技术栈换Vue技术栈。

二、需求概述

1、项目工程搭建,模块设置;

2、对接业务系统,在线功能和离线功能;

3、应用页面绘制以及业务逻辑实现;

三、解决设计思路

1、搭建Vue项目工程;

2、全局引入Ionic的样式;

3、根据AngularJs项目静态页面布局,对Vue项目进行布局修改,还原页面布局;

4、根据AngularJs项目业务逻辑,对Vue项目进行语法修改;

5、提炼相应的组件;

6、IndexedDB离线数据处理;

四、前提条件

1. 原技术框架:AngularJs+Ionic;

2. 现技术框架:Vue;

3. 两个项目的业务需求以及页面布局相同;

五、详细步骤

1、构建Vue项目工程 ——》工程搭建

2、配置项目的运行环境的baseUrl——》基地址配置

3、配置config文件夹下,dev和prod环境 ——》跨域问题(原项目转换直接对接第三方APP,出现跨域问题)

4、配置login.js文件,对接第三方APP,做单点登录 ——》登录获取token

5、ionic.css文件放置在asstes文件夹下,在main.js中全局引入该样式 ——》页面样式同步

6、根据AngularJs项目提炼Vue技术栈组件 ——》页面组件

AngularJs:

Vue:

7、复制AngularJs项目dom结构至Vue项目,根据Vue规则进行修改 ——》页面布局

AngularJs:

Vue:

8、根据AngularJs项目业务逻辑,撰写Vue项目的业务逻辑 ——》业务逻辑

AngularJs:

Vue:

9、indexedDB离线数据处理,根据Vue的生命周期,created是每次只执行一次,所以离线数据库建在created函数里面,在接下来的业务逻辑处理中,取出来使用,读取、更新、删除、存储等操作。在AngularJs项目中,有把数据通过广播事件$broadcast传递出去,在另一个页面通过$on事件进行接收,然后进行处理,更新数据库,所以在Vue项目中也应做相应处理,通过$emit事件把需要的事件传递出去,再使用$on进行接收,根据Vue的生命周期,$on接收事件是在mounted函数中,进行异步操作更新数据库,如需要使用的页面比较多的话,建议把离线的方法进行封装。

IndexedDB:

AngularJs广播和接收事件:

Vue传递和接收事件:

六、注意事项

1. 可能存在跨域问题;

2. 基地址;

3. AngularJs的广播与接收事件,在Vue项目中也要做相应处理;

4. AngularJs和Vue的生命周期问题;

5. IndexedDB的处理;

你可能感兴趣的:(AngularJs项目转Vue项目技术方案)