美文网首页纵横研究院Angular技术专题社区
AngularJs项目转Vue项目技术方案

AngularJs项目转Vue项目技术方案

作者: MeiDan_Qiu | 来源:发表于2020-01-03 11:38 被阅读0次

    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项目技术方案

        本文链接:https://www.haomeiwen.com/subject/lllzoctx.html