iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何搭积木式的快速开发H5页面
  • 530
分享到

如何搭积木式的快速开发H5页面

2024-04-02 19:04:59 530人浏览 八月长安
摘要

这篇文章主要介绍“如何搭积木式的快速开发H5页面”,在日常操作中,相信很多人在如何搭积木式的快速开发H5页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何搭积木式的快速开

这篇文章主要介绍“如何搭积木式的快速开发H5页面”,在日常操作中,相信很多人在如何搭积木式的快速开发H5页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何搭积木式的快速开发H5页面”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

设计初衷

笔者最开始开发这个项目的主要目的是提高个人和企业开发 H5 页面的成本和效率, 可以通过搭积木的方式,  利用已有组件库或外部组件资源(正在设计)搭建出适合不同场景的 H5 应用, 并且支持一键下载代码, 让技术人员轻松将H5页面部署到自己的服务器中.  笔者之前也做过很多代码生成的小应用, 但是都是为程序员少写代码而设计的, 不足以成为一个真正的开源项目, 所以笔者打算把H5-Dooring好好落地,  做成一个真正有价值的项目.笔者接下来将介绍最新版H5编辑器的功能和实现思路, 以及如何实现所见即所得的方案尝试.

最新版编辑器效果预览

如何搭积木式的快速开发H5页面 

表单数据看板和数据分析:

如何搭积木式的快速开发H5页面

技术栈

之前在笔者的文章中也介绍过H5-Dooring使用的技术栈和基础架构实现了, 感兴趣的可以参考  基于React+Koa实现一个h6页面可视化编辑器最近我们在用nest重构项目的后端部分, 后期会做一定的技术方案介绍.  这里简单介绍一下项目实现的技术栈:

  • umi3.0 + dva + antd4.0

  • react + react生态

  • nest + mysql + redis

  • nginx + pm2

所以这个项目属于一个全栈项目, 很多核心功能的实现取决的约定好的DSL层, 页面渲染层和后端能力.

功能点和实现方案

笔者之前的系列文章中有介绍具体功能点和实现方案, 这里我们主要介绍1.0版本已有的新功能.

新增富文本组件, 日历组件, 按钮交互组件, 专栏组件

富文本组件笔者采用的是国产的braft, 预览如下:

如何搭积木式的快速开发H5页面

因为项目用antd4.0开发的, 所以笔者专门封装了一套适配antd4.0组件的富文本编辑器,  支持FORM组件的受控模式. 感兴趣的可以在GitHub上学习具体的实现方式.

日历组件也是最近刚加的, 主要是为了实现更丰富的H5页面展示, 如下:

如何搭积木式的快速开发H5页面

我们可以设置选择的时间范围, 被选择范围的主色, 日期等.  日期组件笔者主要采用的zarm的Calendar组件, 核心如下:

import React, { useState, memo, useEffect, useRef } from 'react'; import { Calendar } from 'zarm'; import styles from './index.less'; import { ICalendarConfig } from './schema';  const CalendarPlayer = memo((props: ICalendarConfig & { isTpl: boolean }) => {   const { time, range, color, selectedColor, round, isTpl } = props;   const realRange = range.split('-');    const [value, setValue] = useState<Date[] | undefined>([new Date(`${time}-${realRange[0]}`), new Date(`${time}-${realRange[1]}`)]);   const [min] = useState(new Date(`${time}-01`));   const [max] = useState(new Date(`${time}-31`));   const boxRef = useRef<any>(null);   return <div className={styles.calenderWrap} style={{borderRadius: round + 'px', pointerEvents: isEditorPage ? 'none' : 'initial'}} ref={boxRef}>           <Calendar             multiple={!!range}             value={value}             min={min}             max={new Date(max)}             disabledDate={(date:any) => /(0|6)/.test(date.getDay())}             onChange={(value:Date[] | undefined) => {               setValue(value);             }}           />         </div> });  export default CalendarPlayer;

这也是实现Dooring组件的一种方式, 感兴趣的朋友欢迎为Dooring添加更多丰富组件支持.

之前还有个朋友问过我为什么项目使用了这么多组件在预览H5页面的时候速度还是很快, 这里我说明一下具体的实现方式, 如下图:

如何搭积木式的快速开发H5页面

所以说我们移动端的产物和依赖的资源非常少, 并且在webpack层和服务器层做了优化,  所以移动端访问H5页面会非常快, 这块优化笔者后期会详细介绍, 目前对性能这块还在持续优化.

按钮交互组件笔者之前也写过文章专门详细的介绍过如何实现按钮交互, 自定义交互代码以及富文本弹窗交互等, 感兴趣的可以参考文章  低代码开发平台核心功能设计&mdash;&mdash;组件自定义交互实现.

笔者这里展示一下具体的交互方式:

如何搭积木式的快速开发H5页面

打开弹窗的交互用户可以自定义弹窗中的内容, 如下:

如何搭积木式的快速开发H5页面

此时在手机端的预览效果如下:

如何搭积木式的快速开发H5页面

 对于自定义code这块, 笔者集成了代码编辑库codemirror,  这样我们就可以自定义实现交互能力了, 如下效果:

如何搭积木式的快速开发H5页面

接下来是我们的专栏组件, 这块主要是基于业务需求做的业务组件, 实现方式和基础组件一样, 大家可以在线体验一下.

新增导入导出json文件功能

之所以会做这个功能主要是为了方便协作设计H5页面的, 比如说一个人设计了一个H5页面想让其他人一起参与设计, 可以将当前H5页面导出为JSON,  另一个人通过导入这个jsON文件就可以立马渲染成一模一样的H5页面, 进而做修改或者完善. 如下:

如何搭积木式的快速开发H5页面

关于如何实现下载json, 笔者在之前的文章中也介绍过, 我们可以采用file-saver这个第三方模块来做. 上传解析json 我们完全可以自己实现,  笔者采用的是 Upload + FileReader api实现的, 核心代码如下:

const uploadprops = useMemo(() => ({     name: 'file',     showUploadList: false,     beforeUpload(file, fileList) {       // 解析并提取json数据       let reader = new FileReader();       reader.onload = function(e) {         let data = e.target.result;         importTpl && importTpl(JSON.parse(data))       };       reader.readAsText(file);     }   }), []);

新增一键截图并生成高清海报图功能

这块主要是为H5页面提供一个快速成图方案, 方便运营或者技术人员做页面效果评估用的, 在前端实现角度上我们主要采用canvas对dom进行转化,  原理如下:

如何搭积木式的快速开发H5页面

笔者之前也分享过具体的实现方案, 可以参考如下文章:

前端如何实现一键截图功能?

这里笔者推荐两个好用的canvas截图工具, html2canvas和 dom-to-image. Dooring页面的截图过程如下:

 如何搭积木式的快速开发H5页面

新增右键菜单和自定义键盘快捷键功能

为了进一步提高用户搭建H5页面的效率, 笔者添加了右键菜单, 可以轻松的复制已制作好的组件, 也可以一键删除, 如下:

但是对于键盘控们来说更希望通过键盘来实现所有功能, 所以个笔者添加了键盘快捷键, 支持一键复制,  粘贴,删除元素, 如下:

如何搭积木式的快速开发H5页面

这里推荐几个还好用的右键菜单和键盘快捷键的库, react-contexify,  keymaster.

新增页面配置

这块主要是让H5页面有更多的自由度, 可以自定义页面标题, SEO关键字, 页面背景和背景图等, 如下:

如何搭积木式的快速开发H5页面

后续会添加更多页面自定义的能力.

界面设计优化

和0.1版本比界面上做了很大的调整和优化, 比如说我们的登录页面:

如何搭积木式的快速开发H5页面

预览页面:

如何搭积木式的快速开发H5页面

支持sdk引入

这块也是笔者之前做的一个尝试, 让H5-Dooring能通过sdk的方式被植入到任何WEB系统中,并且提供了定制功能和展示的api, 主要如下:

如何搭积木式的快速开发H5页面

实现原理笔者之前也在文章中介绍过了, 如下:

如何搭积木式的快速开发H5页面

到此,关于“如何搭积木式的快速开发H5页面”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 如何搭积木式的快速开发H5页面

本文链接: https://www.lsjlt.com/news/74198.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何搭积木式的快速开发H5页面
    这篇文章主要介绍“如何搭积木式的快速开发H5页面”,在日常操作中,相信很多人在如何搭积木式的快速开发H5页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何搭积木式的快速开...
    99+
    2024-04-02
  • 怎么使用类似搭积木的开发方式进行SAP API开发
    本篇内容主要讲解“怎么使用类似搭积木的开发方式进行SAP API开发”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用类似搭积木的开发方式进行SAP API开发”吧!打开Modeler的Op...
    99+
    2023-06-03
  • 如何使用Fullpage插件快速开发整屏翻页的页面
    这篇文章将为大家详细讲解有关如何使用Fullpage插件快速开发整屏翻页的页面,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、一些必要的资源 //jquery <...
    99+
    2024-04-02
  • 如何快速搭建一个Java开发环境
    如何快速搭建一个Java开发环境?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java开发环境配置(win7-64bit)1.概述搭建Java开发环境一般需要同...
    99+
    2023-05-31
    java ava
  • 如何搭建SpringBoot+MyBatisPlus快速开发脚手架
    本篇内容介绍了“如何搭建SpringBoot+MyBatisPlus快速开发脚手架”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!聊聊mall...
    99+
    2023-07-02
  • 如何快速搭建一个Android开发环境
    这篇文章将为大家详细讲解有关如何快速搭建一个Android开发环境,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、安装JDK安装JavaJDK的路径:C:\Java\jdk1.7.0_80...
    99+
    2023-05-31
    android roi
  • 如何使用Docker快速搭建多版本PHP开发环境
    本篇内容主要讲解“如何使用Docker快速搭建多版本PHP开发环境”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Docker快速搭建多版本PHP开发环境”吧!目标支持 PHP 5.6.x...
    99+
    2023-07-04
  • Go语言+Linux容器:如何快速搭建高效的开发环境?
    Go语言 Linux容器:如何快速搭建高效的开发环境? 随着云计算的快速发展,容器技术越来越受到开发者的青睐。Linux容器是一种轻量级的虚拟化技术,它可以在一个操作系统内部创建多个隔离的用户空间,每个用户空间拥有自己的应用程序和运行环境。...
    99+
    2023-09-17
    容器 对象 linux
  • 初学者如何快速搭建Express开发系统步骤详解
    1、序言   下班回来,孩子跟妻子没在家。我吃完留在锅里的饭菜,就准备开始躺在沙发里去刷抖音。可这难得的安静不去干一些写作整理的事情,的确是挺奢侈的。 &emsp...
    99+
    2023-05-20
    Express 开发系统 node.js
  • Windows系统下,如何快速搭建PHP分布式开发环境?这里有推荐的IDE!
    PHP是一种非常流行的编程语言,广泛应用于Web开发领域。而在实际开发中,我们经常需要搭建PHP分布式开发环境,以便多人协同开发。本文将介绍如何在Windows系统下快速搭建PHP分布式开发环境,并推荐一些优秀的IDE。 一、搭建PHP分...
    99+
    2023-10-26
    分布式 ide windows
  • Flex和Java如何快速开发的Flamingo项目
    这篇文章给大家介绍Flex和Java如何快速开发的Flamingo项目,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在学习Flex的过程中你可能会遇到使用Flex和Java快速开发的Flamingo项目的问题,这里和大...
    99+
    2023-06-17
  • 如何快速操作移动端Web页面的CSS3flex布局
    这篇文章将为大家详细讲解有关如何快速操作移动端Web页面的CSS3flex布局,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 1...
    99+
    2024-04-02
  • ASP开发技术面试:如何利用IDE快速调试代码?
    在ASP开发中,快速调试代码是一项非常重要的技能。因为在程序开发中难免会遇到各种各样的问题,如果不能快速的找到问题所在,就会导致开发周期延长,影响整个项目进度。因此,掌握快速调试代码的技巧是非常有必要的。下面,我们将介绍如何利用IDE快速...
    99+
    2023-08-10
    开发技术 面试 ide
  • 如何使用Java分布式框架中的Shell进行快速开发?
    Java分布式框架中的Shell是一个非常强大的工具,可以帮助开发者快速开发出分布式应用程序。本文将介绍如何使用Java分布式框架中的Shell进行快速开发。 一、什么是Java分布式框架中的Shell? Java分布式框架中的Shell是...
    99+
    2023-08-18
    分布式 框架 shell
  • FlexSDK4 Gumbo的主题如何实现快速RIA开发
    这篇文章将为大家详细讲解有关FlexSDK4 Gumbo的主题如何实现快速RIA开发,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。FlexSDK4:Gumbo的主题极其快速的RIA开发Ado...
    99+
    2023-06-17
  • Android开发中如何为程序创建桌面快捷方式
    这期内容当中小编将会给大家带来有关Android开发中如何为程序创建桌面快捷方式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:private void addShortcut() { In...
    99+
    2023-05-31
    android roi
  • 项目实践:如何运用CSS框架快速开发网页的经验总结
    项目实践:如何运用CSS框架快速开发网页的经验总结引言:在如今互联网飞速发展的时代,网页设计与开发的速度和效率成为了项目成功的关键因素之一。为了更快速地实现网页布局和样式的开发,开发者借助CSS框架成为一种常见的选择。本文将通过项目实践的经...
    99+
    2023-11-02
    网页 快速开发 CSS框架
  • PHP开发中如何优化用户体验和页面加载速度
    随着互联网技术的发展,网站的用户体验和页面加载速度已成为用户选择使用网站的重要考虑因素之一。而PHP作为一种广泛应用于网站开发的脚本语言,对于优化用户体验和页面加载速度也有着很多可操作的方法。本文将通过具体的代码示例,介绍一些PHP开发中常...
    99+
    2023-10-21
    导航 缓存 优化: 性能 用户体验: 响应式设计 页面加载速度: 压缩
  • ASP 开发技术中的缓存函数,如何实现网页数据的快速访问?
    在 ASP 开发中,缓存函数是一个非常重要的概念。它可以大大提高网页的访问速度,减轻服务器的负担,提升用户体验。那么,什么是缓存函数?如何实现网页数据的快速访问呢? 一、什么是缓存函数? 缓存函数是一种将数据缓存到内存中,以提高数据访问速...
    99+
    2023-10-24
    开发技术 缓存 函数
  • uniapp开发小程序H5页面顶部导航栏navigationBar如何隐藏?三种解决办法
    方法1:在pages.json { ..."pages": [ {"path": "XXXX","style": {"navigationBarTitleText": "导航栏","navigationStyle": "cus...
    99+
    2023-09-03
    uni-app 小程序
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作