mk-js,一个基于react、nodejs的全栈框架

前言

在这个前端技术爆炸的时代,不自己写套开源框架出门都不好意思跟别人说自己搞前端。去年年初接触的react,16年7月份在github开源了一套针对react、redux探索的项目,近期和伙伴们一起重构了这个项目,等待大伙拍砖。。。搞不明白为什么一发布到首页区就会被移除。。。

框架介绍

  • mk框架 = monkey king框架 = 齐天大圣框架
  • 基础技术栈:react、redux、immutable、antd、webpack、nodejs、hapi、sequelize、node-zookeeper-dubb等
  • 框架核心思想:js全栈、应用化

介绍网址

  https://ziaochina.github.io/mk-docs

特点

  • 将网站分成多个独立app,每个app开发模式完全一致,并且可以克隆npmjs发布模板app
  • 将后台服务分成多个独立service, 每个servie开发模式完全一致, 并且可以克隆npmjs发布的模板service
  • 开发者自己做的app,service可以发布到npmjs开源给其他开发者使用,成为一个生态化的框架

使用

  • 步骤一、使用mk命令建立网站
$ npm i -g mk-tools                   //安装mk
$ mk website my-demo && cd my-demo         //创建空网站
$ mk clone mk-app-root apps/            //克隆root应用
$ mk clone mk-app-login apps/           //克隆登录应用
$ mk clone mk-app-portal apps/          //克隆门户应用
$ mk clone mk-app-person-list apps/        //克隆列表应用
$ mk clone mk-app-person-card apps/        //克隆卡片应用
$ mk clone mk-app-complex-table apps/      //克隆复杂表格应用
$ mk clone mk-app-editable-table apps/     //克隆可编辑表格应用
$ mk clone mk-app-tree-table apps/        //克隆左树右表应用
$ mk compile website               //编译网站
  • 步骤二、配置
//修改文件:my-demo/config.js
//也可以直接进apps目录根据自己需求修改app内容
...
  _options.apps && _options.apps.config({
		//‘*‘: { webapi } //正式网站应该有一个完整webapi对象,提供所有web请求函数
		‘mk-app-root‘: {
			startAppName: ‘mk-app-login‘
		},
		‘mk-app-login‘: {
			goAfterLogin: {
				appName: ‘mk-app-portal‘
			}
		},
		‘mk-app-portal‘: {
			menu: [{
				key: ‘1‘,
				name: ‘about‘,
				appName: ‘mk-app-portal-about‘,
				isDefault: true
			}, {
				key: ‘2‘,
				name: ‘apps‘,
				isExpand: true,
				children: [{
					key: ‘201‘,
					name: ‘列表‘,
					appName: ‘mk-app-person-list‘
				}, {
					key: ‘202‘,
					name: ‘卡片‘,
					appName: ‘mk-app-person-card‘
				},{
					key:‘203‘,
					name:‘复杂表格‘,
					appName: ‘mk-app-complex-table‘
				},{
					key:‘204‘,
					name:‘可编辑表格‘,
					appName: ‘mk-app-editable-table‘
				},{
					key:‘205‘,
					name:‘树表‘,
					appName: ‘mk-app-tree-table‘
				},{
					key: ‘206‘,
					name: ‘柱状图‘,
					appName: ‘mk-app-bar-graph‘
				}]
			}]
		}
	})
...

  

  • 步骤三、按需修改代码,实现自己功能要求
  • 步骤四、运行 npm start

DEMO截图

  按照上面的步骤可以得到如下截图样子的一个网站

  可以在线访问我已经做好的一个demo,网址:https://ziaochina.github.io/mk-demo

时间: 2024-10-07 11:11:57

mk-js,一个基于react、nodejs的全栈框架的相关文章

基于NodeJS的全栈式开发

随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本.为了提升开发效率,前后端分离的需求越来越被重视,后端负责业务/数据接口,前端负责展现/交互逻辑,同一份数据接口,我们可以定制开发多个版本. 这个话题最近被讨论得比较多,阿里有些BU也在进行一些尝试.讨论了很久之后,我们团队决定探索一套基于NodeJS的前后端分离方案,过程中有一些不断变化的认识以及思考,记录在这里,也希望看到的同学参

也谈基于NodeJS的全栈式开发(基于NodeJS的前后端分离)

随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本.为了提升开发效率,前后端分离的需求越来越被重视,后端负责业务/数据接口,前端负责展现/交互逻辑,同一份数据接口,我们可以定制开发多个版本. 这个话题最近被讨论得比较多,阿里有些BU也在进行一些尝试.讨论了很久之后,我们团队决定探索一套基于NodeJS的前后端分离方案,过程中有一些不断变化的认识以及思考,记录在这里,也希望看到的同学参

基于NodeJS的全栈式开发(基于NodeJS的前后端分离)

也谈基于NodeJS的全栈式开发(基于NodeJS的前后端分离) 前言 为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异.痛定思痛,今天我们重新思考了“前后端”的定义,引入前端同学都熟悉的NodeJS,试图探索一条全新的前后端分离模式. 随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体验的高要求,我们往往需要针对不同的终端开发定制的版本.为了提升开发效率,前后端分离的需求越

一个基于共享内存的ipc通信框架

一个基于共享内存的ipc通信框架 与共享内存相关的操作主要包括共享内存的初始化, 共享内存的释放, 共享内存的锁的相关操作, 在这里操作共享内存的环境是: 1 多个进程没有亲缘关系, 也没有server/client关系, 是多个不相关进程并发操作共享内存 2 共享内存一开始不存在, 由第一个访问他的进程创建 3 当共享内存退出时, 由最后一个离开的进程释放共享内存, 并清除信号量 在这个问题之中, 主要有两个比较大的问题: 1 怎样新建并初始化共享内存 新建共享内存的数据都可以用信号量来控制,

Struts2是一个基于MVC设计模式的Web应用框架

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互. Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架. 其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大. Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制

react-static 基于react 渐进式静态站点生成框架

react-static 是一个不错的基于react 开发的静态站点生成框架,可以用来替代create-react-app 包含的特性 100% react 很快的构建以及性能 自动代码以及数据分离 seo 友好 100% 支持react 的生态,包含css in js graphql redux hot reload 支持通过prpl 模式即时页面视图 说明 目前已经有好多站点已经使用此框架进行站点的开发,从官方文档可以看出,类似的有next nuxt gastby phenomic (nod

一个用react+nodejs实现的笔记本小应用

随便扯 寒假回家产品经理一直叮嘱着要继续做学校团队的辣个项目,但是...没错,我一点都还没做,而且还销声匿迹躲了起来几天,是的我干了票大的,想偷偷的把项目的前端用react实现了,在服务端再加一层nodejs,所以这几天一直在偷偷摸摸的做一些不相干的东西,不知道产品经理知道了会不会砍我...所以现在这个就是我昨天做的又一个用来练手的小东西 这里应该有一段严肃的说明 -应用功能 1 添加笔记 2 删除笔记 3 显示和隐藏表单 好吧⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄.我承认这功能确实是太简单了... g

写了一个基于React+Redux的仿Github进度条

曾经实现过Angular版,这次感觉用了高大上的React却写了更多的代码,需要的配置也更多了,有利有弊吧. 但这个“导航条问题”很有意思,涉及到在Redux中写timer,其实我很困惑,到底如何完美模拟用户的页面加载, 貌似浏览器并没有提供进度API,只能以这样拙劣的方式进行模拟,有兴趣的朋友不妨与我交流. 代码附上: LoadingBar.jsx import React, { Component, PropTypes } from 'react'; import { connect } f

btFormbuilder.js 一个基于bootstrap的jquery插件,用于生成form表单

废话不多,用法和bootstraptable差不多 可以看git项目里面的代码看用法 git项目地址: https://github.com/lurktion/btFormbuilder