CN109271149A - 一种架构单页应用程序的方法 - Google Patents

一种架构单页应用程序的方法 Download PDF

Info

Publication number
CN109271149A
CN109271149A CN201811150789.3A CN201811150789A CN109271149A CN 109271149 A CN109271149 A CN 109271149A CN 201811150789 A CN201811150789 A CN 201811150789A CN 109271149 A CN109271149 A CN 109271149A
Authority
CN
China
Prior art keywords
module
theme
axios
subfile
router
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811150789.3A
Other languages
English (en)
Other versions
CN109271149B (zh
Inventor
胡敏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201811150789.3A priority Critical patent/CN109271149B/zh
Publication of CN109271149A publication Critical patent/CN109271149A/zh
Application granted granted Critical
Publication of CN109271149B publication Critical patent/CN109271149B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种架构单页应用程序的方法,包括:创建mian.js,在mian.js引入store模块、views模块、router模块、axios模块、components模块和util模块。本发明基于Vue.js+Vuex+iView+Axios架构单页程序,结合了以数据驱动和组件化的思想、状态管理模式、开源UI组件库以及基于promise用于浏览器和node.js的http客户端,提供更简洁和易于理解的API,集中管理应用的所有组件的状态,可以通过编辑变量列表定制UI主题,实现了程序的快速开发、减少开发周期以及降低了时间成本。

Description

一种架构单页应用程序的方法
技术领域
本发明涉及计算机技术与WEB应用开发技术领域,具体的说,是一种架构单页应用程序的方法。
背景技术
Vue.js自2016年大火,现在是前端开发主流的一个JavaScriptMVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提供了更加简洁、更易于理解的API,使得用户能快速上手并使用Vue.js。Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。为了快速运用新技术来开发或重构项目,本发明实例提供了一种以Vue.js+Vuex+iView+Axios架构单页应用程序的方法,用户可以迅速使用该方法投入开发,使其项目开发周期缩短,开发成本下降。
发明内容
本发明的目的在于提供一种架构单页应用程序的方法,用于解决现有技术中开发或重构项目不够快速,开发周期长,开发成本高的问题。
本发明通过下述技术方案解决上述问题:
一种架构单页应用程序的方法,包括:
创建入口文件mian.js,在入口文件mian.js引入store模块、views模块、router模块、axios模块、components模块和util模块,其中:
store模块:包括子文件xx.js、getter.js、index.js和generator.js,所述子文件xx.js根据业务需求创建,并定义了state、mutation和action;所述generator.js包含根据子文件xx.js的命名和收到的网络请求接口生成state、mutation和action的方法,所述生成state、mutation和action的方法被映射到子文件xx.js中;所述getter.js获取state数据,并返回至index.js,index.js用于组装子文件xx.js和getter.js,并导出至views模块;
views模块:包括app.vue、theme.less和module,所述app.vue为程序的主组件,所述theme.less用于提供UI主题,所述module为根据业务划分的子模块,所述子模块内包含功能页面;
router模块:包含router.js,用于创建新路由,并将组件映射到路由,接收theme.less的UI主题并向main.js提供渲染组件的位置;
axios模块:包括fetch.js,用于初始化axios模块并配置网络拦截器,并将网络请求接口传递给store模块的generator.js;
components模块:包含自定义控件;
util模块:用作工具箱,所述工具箱包含用于写入复用的数据的混入文件。
原理:
axios模块、store模块、components模块、util模块、views模块和router模块,六个模块功能划分清晰:
以axios模块作为http客户端发起网络请求获取数据,并将网络请求接口传递至store模块中的generator.js;
store模块中可以根据业务需求创建子文件xx.js,xx.js中定义的state用于记录状态,通过mutation改变state状态,action用以异步分发mutation中的具体内容;store模块以Vuex集中存储和管理应用的所有组件的状态,并按照定义的规则保证组件的变化可预测;
views模块以iView作为网页UI组件框架,包含app.vue、theme.less和module,app.vue即程序的主组件,确定了网站布局,其他所有页面都是在app.vue下切换的,theme.less是iView默认提供的一套UI主题,定义了一套样式变量,编辑这个变量列表就可以轻松定制新主题,以满足业务和品牌上的多样化视觉需求;module内是根据业务需求划分的子模块,子模块内有对应功能的页面。
router模块将组件映射到路由,以Vue-router渲染组件;store模块和views模块根据业务需求划分出对应的子模块,六个模块功能划分清晰。
Components模块:包含各种根据业务需求编写的自定义控件,在页面可引入使用。也可用npm安装github上的第三方控件并在页面中直接使用。
用户更改axios模块的fetch.js文件内的网络请求接口地址和对应命名,根据业务需求创建store模块内的子模块xx.js,在其中声明与fetch.js相同的接口命名,再根据业务需求编写自定义getter.js,在index.js中将子模块xx.js和getter组合起来并导出store模块,由此,便结合Axios和Vuex完成了整个项目的网络接口请求数据并全局管理数据的功能。之后,用户再根据业务需求编写views模块的app.vue确定整个系统的布局,编写views模块的子模块页面,修改theme.less定制新主题,根据需要编写components模块中的自定义控件和工具类,最后编写router模块的router.js,创建新Router将组件映射到路由,由此便完成整个程序。用户根据业务需求可自行修改本架构中的模块,比如若利用iView的theme.less来创建新主题无法满足视觉需求,可以另新建CSS文件来编写样式。
本发明与现有技术相比,具有以下优点及有益效果:
本发明基于Vue.js+Vuex+iView+Axios架构单页程序,结合了以数据驱动和组件化的思想、状态管理模式、开源UI组件库以及基于promise用于浏览器和node.js的http客户端,提供更简洁和易于理解的API,集中管理应用的所有组件的状态,可以通过编辑变量列表定制UI主题,实现了程序的快速开发、减少开发周期以及降低了时间成本。
附图说明
图1为本发明的架构图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1:
结合附图1所示,一种架构单页应用程序的方法,包括:
创建入口文件mian.js,在入口文件mian.js引入store模块、views模块、router模块、axios模块、components模块和util模块,其中:
store模块:包括子文件xx.js、getter.js、index.js和generator.js,所述子文件xx.js根据业务需求创建,并定义了state、mutation和action;所述generator.js包含根据子文件xx.js的命名和收到的网络请求接口生成state、mutation和action的方法,所述生成state、mutation和action的方法被映射到子文件xx.js中;所述getter.js获取state数据,并返回至index.js,index.js用于组装子文件xx.js和getter.js,并导出至views模块;
views模块:包括app.vue、theme.less和module,所述app.vue为程序的主组件,所述theme.less用于提供UI主题,所述module为根据业务划分的子模块,所述子模块内包含功能页面;
router模块:包含router.js,用于创建新路由,并将组件映射到路由,接收theme.less的UI主题并向main.js提供渲染组件的位置;
axios模块:包括fetch.js,用于初始化axios模块并配置网络拦截器,并将网络请求接口传递给store模块的generator.js;
components模块:包含自定义控件;
util模块:用作工具箱,所述工具箱包含用于写入复用的数据的混入文件。
原理:
axios模块、store模块、components模块、util模块、views模块和router模块,六个模块功能划分清晰:
以axios模块作为http客户端发起网络请求获取数据,并将网络请求接口传递至store模块中的generator.js;
store模块中可以根据业务需求创建子文件xx.js,xx.js中定义的state用于记录状态,通过mutation改变state状态,action用以异步分发mutation中的具体内容;store模块以Vuex集中存储和管理应用的所有组件的状态,并按照定义的规则保证组件的变化可预测;
views模块以iView作为网页UI组件框架,包含app.vue、theme.less和module,app.vue即程序的主组件,确定了网站布局,其他所有页面都是在app.vue下切换的,theme.less是iView默认提供的一套UI主题,定义了一套样式变量,编辑这个变量列表就可以轻松定制新主题,以满足业务和品牌上的多样化视觉需求;module内是根据业务需求划分的子模块,子模块内有对应功能的页面。
router模块将组件映射到路由,以Vue-router渲染组件;store模块和views模块根据业务需求划分出对应的子模块,六个模块功能划分清晰。
Components模块:包含各种根据业务需求编写的自定义控件,在页面可引入使用。也可用npm安装github上的第三方控件并在页面中直接使用。
用户更改axios模块的fetch.js文件内的网络请求接口地址和对应命名,根据业务需求创建store模块内的子模块xx.js,在其中声明与fetch.js相同的接口命名,再根据业务需求编写自定义getter.js,在index.js中将子模块xx.js和getter组合起来并导出store模块,由此,便结合Axios和Vuex完成了整个项目的网络接口请求数据并全局管理数据的功能。之后,用户再根据业务需求编写views模块的app.vue确定整个系统的布局,编写views模块的子模块页面,修改theme.less定制新主题,根据需要编写components模块中的自定义控件和工具类,最后编写router模块的router.js,创建新Router将组件映射到路由,由此便完成整个程序。用户根据业务需求可自行修改本架构中的模块,比如若利用iView的theme.less来创建新主题无法满足视觉需求,可以另新建CSS文件来编写样式。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。

Claims (1)

1.一种架构单页应用程序的方法,其特征在于,包括:
创建入口文件mian.js,在入口文件mian.js引入store模块、views模块、router模块、axios模块、components模块和util模块,其中:
store模块:包括子文件xx.js、getter.js、index.js和generator.js,所述子文件xx.js根据业务需求创建,并定义了state、mutation和action;所述generator.js包含根据子文件xx.js的命名和收到的网络请求接口生成state、mutation和action的方法,所述生成state、mutation和action的方法被映射到子文件xx.js中;所述getter.js获取state数据,并返回至index.js,index.js用于组装子文件xx.js和getter.js,并导出至views模块;
views模块:包括app.vue、theme.less和module,所述app.vue为程序的主组件,所述theme.less用于提供UI主题,所述module为根据业务划分的子模块,所述子模块内包含功能页面;
router模块:包含router.js,用于创建新路由,并将组件映射到路由,接收theme.less的UI主题并向main.js提供渲染组件的位置;
axios模块:包括fetch.js,用于初始化axios模块并配置网络拦截器,并将网络请求接口传递给store模块的generator.js;
components模块:包含自定义控件;
util模块:用作工具箱,所述工具箱包含用于写入复用的数据的混入文件。
CN201811150789.3A 2018-09-29 2018-09-29 一种架构单页应用程序的方法 Active CN109271149B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811150789.3A CN109271149B (zh) 2018-09-29 2018-09-29 一种架构单页应用程序的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811150789.3A CN109271149B (zh) 2018-09-29 2018-09-29 一种架构单页应用程序的方法

Publications (2)

Publication Number Publication Date
CN109271149A true CN109271149A (zh) 2019-01-25
CN109271149B CN109271149B (zh) 2021-04-27

Family

ID=65194880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811150789.3A Active CN109271149B (zh) 2018-09-29 2018-09-29 一种架构单页应用程序的方法

Country Status (1)

Country Link
CN (1) CN109271149B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966360A (zh) * 2020-08-18 2020-11-20 浪潮云信息技术股份公司 一种用于项目发布管理模型的单元应用开发方法及系统
CN112612627A (zh) * 2020-12-28 2021-04-06 江苏梨柳科技有限公司 一种web端实现三维互动的方法
CN112711408A (zh) * 2020-12-31 2021-04-27 南威软件股份有限公司 基于Vue组件化的可视化配置渲染方法、系统、终端

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605516A (zh) * 2013-11-12 2014-02-26 国家电网公司 柔性Web展现框架模型架构设计方法
US20150052498A1 (en) * 2013-08-13 2015-02-19 Salesforce.Com, Inc. Responsive self-service website template
CN107291523A (zh) * 2017-08-01 2017-10-24 北京亚鸿世纪科技发展有限公司 一种Web前端消息总线系统
CN107562425A (zh) * 2017-08-07 2018-01-09 上海斐讯数据通信技术有限公司 基于Hybrid应用的单页面应用创建方法及装置
US20180025140A1 (en) * 2016-07-24 2018-01-25 Darrin Edelman Identity Assurance Method
CN107991905A (zh) * 2017-12-25 2018-05-04 南京邮电大学 一种基于Web的多无人机任务规划的仿真系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150052498A1 (en) * 2013-08-13 2015-02-19 Salesforce.Com, Inc. Responsive self-service website template
CN103605516A (zh) * 2013-11-12 2014-02-26 国家电网公司 柔性Web展现框架模型架构设计方法
US20180025140A1 (en) * 2016-07-24 2018-01-25 Darrin Edelman Identity Assurance Method
CN107291523A (zh) * 2017-08-01 2017-10-24 北京亚鸿世纪科技发展有限公司 一种Web前端消息总线系统
CN107562425A (zh) * 2017-08-07 2018-01-09 上海斐讯数据通信技术有限公司 基于Hybrid应用的单页面应用创建方法及装置
CN107991905A (zh) * 2017-12-25 2018-05-04 南京邮电大学 一种基于Web的多无人机任务规划的仿真系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
OGUNDIPE SAMUEL AYO: "How To Build A Simple Single Page Application Using Vue 2", 《HTTPS://SCOTCH.IO/TUTORIALS/HOW-TO-BUILD-A-SIMPLE-SINGLE-PAGE-APPLICATION-USING-VUE-2-PART-1》 *
掘金: "基于iView的Vue js后台管理系统,简洁易扩展", 《HTTPS://JUEJIN.IM/ENTRY/5902BF69B123DB3EE46B510D》 *
离尘不理人: "使用Vuex+Vue.js构建单页应用", 《HTTPS://SEGMENTFAULT.COM/A/1190000005891026》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966360A (zh) * 2020-08-18 2020-11-20 浪潮云信息技术股份公司 一种用于项目发布管理模型的单元应用开发方法及系统
CN112612627A (zh) * 2020-12-28 2021-04-06 江苏梨柳科技有限公司 一种web端实现三维互动的方法
CN112612627B (zh) * 2020-12-28 2024-04-05 江苏梨柳科技有限公司 一种web端实现三维互动的方法
CN112711408A (zh) * 2020-12-31 2021-04-27 南威软件股份有限公司 基于Vue组件化的可视化配置渲染方法、系统、终端

Also Published As

Publication number Publication date
CN109271149B (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
US7448024B2 (en) System and method for software application development in a portal environment
KR101130525B1 (ko) 서식 유형들을 사용하여 서식을 생성하기 위한 방법 및장치
CN102541556B (zh) 分布式应用程序的设计平台
JP5941541B2 (ja) モバイル・アプリケーション開発のためのシステムおよび方法
US20070220035A1 (en) Generating user interface using metadata
CN109271149A (zh) 一种架构单页应用程序的方法
CN112799968B (zh) 一种基于脚本的测试驱动建模系统及方法
Paternò Model-based tools for pervasive usability
McKelvey FCJ-128 A Programmable Platform? Drupal, Modularity, and the Future of the Web
CN102135873A (zh) 一种创建用户界面的方法和装置
Obrenović et al. End-user service computing: Spreadsheets as a service composition tool
CN108563475A (zh) 应用程序的运行方法、装置及存储介质
CA3018676C (en) Systems and methods for dependency-based streamlined processing
CN111857710A (zh) 一种基于内嵌chromium开发Eclipse插件的方法及装置
KR20210071215A (ko) 다양한 조건 하의 어플리케이션 개발 지원 시스템
EP4030282A1 (en) Computing system and method for software architecture planning
US11880668B2 (en) Dynamically altering a code execution workflow during development using augmented reality
Kikukawa et al. Development of a LMS with dynamic support functions for active learning
Spallino Native versus hybrid mobile application development for professional membership services
Mather The devsjava simulation viewer: A modular gui that visualizes the structure and behavior of hierarchical devs models
Michaud A software customization framework
Feuerstack A Method for the User-centered and Model-based Development of Interactive Applications
Coutaz et al. Interactive systems and user‐centered adaptation: the plasticity of user interfaces
Sutter et al. Knative Cookbook: Building Effective Serverless Applications with Kubernetes and OpenShift
O'Callaghan Patterns for Architectural Praxis.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant