打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
使用微搭低代码制作每日菜谱小程序(二)

使用微搭低代码制作每日菜谱小程序

韩锴,公众号:低代码布道师使用微搭低代码制作每日菜谱小程序

我们在上一篇教程中介绍了首页的搭建,使用了栅格布局,先做了菜谱管理的功能,具体效果如下图:

本篇教程将继续往下制作,开发菜谱管理模块的列表查询功能、查看功能、新增功能。

一 列表功能开发

传统开发模式,我们在做功能开发时一般会由平台组提供一套已经集成好的开发框架,我们主要是在开发框架里分包建立自己的功能,比如java开发的话需要建立控制层、业务层、数据库层、表现层等相关代码。

低码开发的话数据源管理相当于传统开发的数据库层,主要包括数据库表的建立及增删改查方法的建立。如果业务逻辑简单其实直接使用平台建立的方法即可,并不需要自己写什么代码。

步骤一 建立数据源

建立的方法也比较简单,只需要在微搭的控制台新建一个内部数据源,增加对应的字段即可。

步骤二 建立页面

这里的页面就类似于java开发中的jsp,我们可以在页面中写前端的代码。和传统开发显著不同的地方是我们所谓的“开发”,是指从组件库中拖组件。我们先需要新建列表页面,具体方法是在页面管理里新建页面

输入页面名称和标识就可以

有了页面之后我们就可以拖动组件了,你熟练使用组件了基本也就算入门了。

其实官方的组件库在开发时就已经充分考虑大家的业务场景了,对于这种列表查询还是很常见的业务场景,官方的组件库中展示类组件就是干这个的。

初次使用这些组件,我感觉初学最大的难点是理解容器的概念,我理解就和搭积木一样,要往上搭建你总得有个底座,这个底座就叫容器,搭好底座我们就可以往容器里边放置具体的组件了。

为了实现列表的效果,我们先增加列表容器组件,有两种方法可以增加,一种是单击组件名称,另外一种是拖动,我自己的习惯是单击,这样会快一点。

组件添加进去默认会出现一个蓝框,意思是这个组件是被选中的状态,在组件的右边会出现三个标签,数据、样式和事件。

数据页签介绍

我们在传统开发中通常需要对组件进行数据绑定,不管是直接赋值也好,还是使用循环展示也好,低码中的数据其实就是为了做数据绑定使用的。

如果你是一个简单的展示,那可以直接设置值,如果是需要展示从数据库中获取到的值需要进行数据绑定,具体方法就是在属性的右边那个超链接的图标进行绑定

绑定数据有四种方式分别为状态变量、参数变量、表达式、for循环。不同的功能使用的方式是不一样的,具体采用哪种方式需要我们在实践中不断的摸索,不断的总结。经验多了也就知道在什么场景下用什么样的方式了。

样式页签介绍

我们传统开发通常将样式写在css文件中,低码开发是在每个组件的样式页签中进行设置的

基本上涵盖了CSS中常用的各种设置,对于我这种小白来说日常我是习惯在这里设置的,当然如果你对前端开发非常熟悉也可以直接写代码,在样式代码编辑里可以直接写

这个地方就可以体现出低码的特点,主要是配置,也支持手写代码

事件页签介绍


在开发领域我们有几种叫法,一种叫面向对象编程,还有一种叫面向事件编程。因为我们主要的技术栈是在前端,所以主要是以事件做驱动,事件页签里决定了这个组件能响应什么样的事件。

像我们添加的这个容器就不支持绑定事件

我们用了一定的篇幅介绍了一些通用的概念,还是回到我们的实战开发上来,容器组件的话我们只需要修改一下标题就可以,修改成每周菜谱查询列表

容器设置好后相当于我们打好了地基,接着就需要放置我们真正显示列表标题的组件了,我们将元素列表组件拖入到容器组件中。当然了我不太习惯拖进去,我还是习惯在大纲树中增加,所以需要切换到大纲树视图,我们选中列表容器的插槽

选中插槽后我们再切换到组件视图,将列表元素组件放到插槽中

组件放置好后我们第一件事需要做的就是数据绑定,自然是绑定列表的集合了。初学者到这块可能就懵了,我要怎么设置才可以循环展示一个集合的数据呢?

其实也很简单,只需要点击for循环展示旁边的超链接图标进行数据绑定即可

但是现在空空如也,没办法选择啊

到了这一步就需要我们再介绍另外一个概念,变量。在编程的世界变量是用来放置值的地方,为了放置值就需要先定义,那低码是如何定义的呢?需要在变量管理里定义

找到我们创建的菜谱页面,展开,点击状态变量旁边的+号

我们这个变量的目的是从数据源中获取菜谱的集合,所以变量类型类别选择数据源,选择我们定义好的菜谱数据源,方法的话选择列表,变量初始化方法选择内置的getList

有过开发经验的小伙伴也能理解这个地方就相当于执行数据库查询,将返回的集合赋值给我们定义好的变量。定义好变量之后我们再回到编辑器中就可以绑定我们刚刚定义的变量啦

绑定好数据之后我们看到界面就显示了多条数据

有小伙伴会有疑问,我没在数据库中存入数据啊,它这怎么就会有数据呢?其实微搭是分为三个模式,开发模式、预览模式和生产模式。开发模式工具会自动生成测试数据方便我们看到组件的设置效果,其他两个模式需要预览发布后才能看到具体的效果。

我们只需要显示标题信息,所以需要设置一下组件的数据属性。初学的时候如何绑定标题就挺难的,其实就是从循环体里设置数据就可以,比如要设置标题,点击旁边的超链接

但是点开又有点懵,不知道该选择哪一个,其实用开发的思路理解一下,我们刚才设置的是for循环的变量,这里边当然要从循环体里设置值啦

绑定后的效果是这个样子的

其余的我们不需要擦掉就可以

这样列表的数据绑定工作就完成了,接着就得定义事件了。我们需要在列表上绑定一个点击事件,所以需要切换到事件页签。

事件呢先得需要选择你要响应哪个事件,然后就是动作的类型,一共有三个选项,低代码、平台方法和数据源。

低代码呢允许我们自己定义代码自由定制业务逻辑,平台方法是预置的方法,数据源的话可以调用平台预定义的增删改查的方法。

我们这里其实是选择的低代码方法,因为需要将这条记录的主键传到下一个页面中。没看错,我们又需要讲解一个新的知识点,如何定义低代码方法。在导航条点击低代码编辑按钮就可以

找到我们创建的菜谱页面,在handler旁边点击+号,输入方法名称就可以

好吧,到了这一块难度一下子就提升了一个数量级,因为跳转到查看页面是需要传参的,所以需要开始写代码了

export default function({event, data}) {app.navigateTo({        pageId: 'menudetail',        params: {            menuid: data.target        }    })}

代码的话也不复杂,其实就是调用了平台的导航方法,将跳转到的页面的ID和当前这条记录的主键传递过去,查看页面就可以根据传过来的主键把数据查出来。至此,列表功能就开发好了,小伙伴们可以按照我的讲解先把列表功能实现了然后咱们再继续。

二 查看功能开发

在列表页我们使用了低代码定义了点击事件,也将菜谱的主键传入到了查看页面,我们讲解一下如何在查看页面获取数据并进行展示

新建页面

先在页面管理创建一个新页面,页面id要和低代码的pageId保持一致

接着我们考虑页面的布局,我们在移动端的信息一般是从上到下,每一行展示一个信息,切换到组件页签,我们还是先添加列表容器,并且修改标题为菜谱信息查看

然后切换到大纲视图,选中插槽

切换到组件视图,增加列表元素组件

第一个组件放置好后,就需要考虑如何展示菜谱的信息,思路是需要在组件上做数据绑定,我们还是先定义变量来获取菜谱的信息

点击变量管理

我们先需要在详情页定义一个参数变量,用来接收列表页面传递过来的参数,记着变量的名称要和列表页低代码里命名保持一致

然后定义一个状态变量来获取菜谱的具体信息,我们选择的是调用数据源的获取单条方法

获取单条需要传入参数,我们点击旁边的超链接图标绑定我们刚才定义好的参数变量

变量定义好后我们就可以将变量绑定到组件上啦,还是点击组件的超链接图标,我们将组件的右侧内容绑定为刚才定义的变量的title字段

绑定好的效果如下图

按照上述方法依次将菜谱的其他信息都设置好

三 新增功能开发

数据查询的功能做好后,我们就接着开发新增的功能,我们先在列表页面上增加一个按钮,用来引导新增页面

我们给按钮定义个点击事件,选择平台的方法导航就可以

添加好后我们需要创建新增页面,在页面管理增加一个页面即可

回到列表页面将按钮的导航页面设置为刚才的页面

接着在新增页面先放置一个表单容器

依次放入表单输入组件

这里需要注意的地方是表单字段名称要和我们数据源定义的字段名称一一对应

输入项都设置好后,我们增加一个按钮组件,将按钮用于form组件属性那块设置成提交

然后选中表单容器组件,给表单容器定义事件,选中数据源即可

添加好后和我们的数据源进行绑定,方法的话选中创建单条记录就可以,这样新增功能就做好了。

四 预览发布

功能开发好后,我们点击预览发布,选中实时预览,编译成功后就可以在手机上体验啦

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python做界面,为什么我会强烈推荐nicegui
数字黑洞(上):三位数的黑洞
一个App完成入门篇
工程化实践:模块化和组件化
在低代码平台里给页面变量赋值
0到1:闲鱼高复杂度高性能社区圈子开发实录
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服