小程序开发-第二章第一节小程序的模板-评分星星模板-全栈工程师之路-中级篇

简介: 小程序开发-第二章第一节小程序的模板-评分星星模板-全栈工程师之路-中级篇

本章我们将以一个实战项目为主要内容,穿插讲解小程序的各种概念。

因为没有UI和后端,所以,我们这里使用豆瓣电影的API和小程序豆瓣评分作为学习材料。

最终我们将会完成一个类似下图的小程序。(大家可以搜索小程序,豆瓣评分,线上已经有了。)

image.png

首先我们来分析一下这个小程序,主要分为电影和个人中心(个人中心我们放后面讨论)。电影主要分为近期上映、热门电影、电视剧、综艺四个模块。

(后续看公共API能够获取到什么数据我们就用什么数据。)

通过观察发现,界面上好多一样的元素,如

image.png

其中

image.png


这个星级评分在别的地方中也经常使用到。

正如我们在代码复用中常做的一样,我们会将一些公共的、经常使用的业务逻辑代码提取成一个公共的函数,这就是所谓的封装。

在界面上我们也可以通过封装来管理一些经常出现的界面。

小程序就提供了这样的封装方法叫做模板。(这句话不太对,这个意思!)

这个模板化在angularjs(ionic1)中我们就有使用过,但是小程序只能把界面那部分内容封装起来。不能把逻辑代码分装。


我们先来创建小星星的那个模板。现在pages目录下新建public目录,用于存放公共的模板文件和公共方法。

在public目录下新建tpl目录,用于存放模板。

首先要有星星的三个状态,我是从豆瓣上拔下来的,三张图片。在最上层目录新建images文件夹。点击右侧...打开菜单栏,在硬盘中打开,然后把我们下载的三张图片放到这里面,刷新一下工具就有了。

image.png

新建stars.wxss和stars.wxml.

image.png

先编写代码如下:stars.wxml.

看上图我们知道,这模板分为左边的星星和右边的分数。

然后我们就可以是使用第一章第四节中提过的flex布局

image.png

我们暂时先编写这个模板,没有样式,也没有数据,我们接着来看,如何使用这个模板。


我们还是拿初始页来编写demo。

image.png

运行代码,我们能够看到刚才我们编写的stars模板已经被成功引用进来了。

image.png

接下来我们开始编写样式,达到我们想要的效果。

首先我们可以看出星星和分数是左右布局的,五个星星也是左右布局的,所以我们可以声明最外层的view的display:flex;flex-direction: row;


然后再声明五个星星所在的view的display:flex;flex-direction: row;

我们编写stars.wxss文件如下:

image.png运行效果和刚才一样,因为我们并没有引用stars.wxss文件,所以打开index.wxss文件,在文件头部加入 @import "../public/tpl/stars.wxss";


运行效果如下:

image.png

基本上达到我们要的效果了。接下来我们修改一下stars.wxml文件,使得stars模板能够接收外部数据。

通过分析我们知道了,这个小模块需要绑定的数据就是五个星星的状态和分数。

严格来说,外部应该提供一个分数,我们就能够实现这些数据的绑定,如angularjs中,我们就是这么实现的。


但是由于小程序不能将逻辑代码分装到模板中,所以这里我们需要一个表示星星状态的数据和分数。

我们用0、1、2分别代表星星的三个状态。

五个一样的元素所以我们使用wx:for进行循环。

因为没有找到类似ng-src的属性,所以,使用三个wx:if来控制星星状态。

修改stars.wxml代码如下:

image.png

然后修改index.wxml中引用starsTpl的地方。 <template is="starsTpl" data="{{starsArr:[2,2,2,2,2],starScore:12}}"></template>

这里作为直观的测试,我们将传递的数据直接写在wxm中。运行代码效果如下所示:

image.png

我们在接着修改index.js,在初始化数据中加入两个变量。

image.png

然后修改index.wxml中引用starsTpl的地方。 <template is="starsTpl" data="{{starsArr:starsArr,starScore:starScore}}"></template>

运行效果如下:

image.png

这样我们就实现了,从最外层的逻辑代码一层层的往下传递数据,实现数据绑定。

-----------------------------修改补充------------------------------

考虑了一下,还是外部传进一个分数,自动设置星星状态,会比较方便,代码修改如下:(源文件中没有修改)

image.pngimage.png

运行效果如下:

image.png

这节课的内容就到这里结束了。

感谢您的阅读。






目录
相关文章
|
5月前
|
人工智能 小程序 前端开发
一个小程序轻量AR体感游戏,开发实现解决方案
针对青少年运动兴趣不足问题,AR体感游戏凭借沉浸式互动体验脱颖而出。结合小程序“AI运动识别”插件与WebGL渲染技术,可实现无需外设的轻量化AR健身游戏,如跳糕、切水果等,兼具趣味性与锻炼效果,适用于儿童健身及职工团建,即开即玩,低门槛高参与。
|
5月前
|
移动开发 小程序 前端开发
小程序开发平台有哪些?哪个好
小程序的开发方式丰富多元,开发团队可根据自身的技术背景、项目具体需求以及资源状况,灵活挑选最为适宜的开发路径。以下将详细介绍几种主流的小程序开发方式。
546 1
|
5月前
|
运维 小程序 数据可视化
小程序开发平台有哪些?SaaS小程序制作平台哪个好
小程序开发模式详解:自主开发、SaaS小程序制作平台与外包全对比 选择合适的小程序开发模式,是项目成功的基石。这三种模式在成本、周期、控制力和灵活性上各有千秋,适用于不同阶段和不同类型的企业。下面我们将逐一深入剖析。
447 8
|
5月前
|
移动开发 小程序 前端开发
小程序快速开发平台有哪些?
小程序开发并非“一刀切”,需结合技术储备、资金预算、时间规划及功能需求等多维度因素综合考量。以下为您详细拆解五种主流开发方案及其适用场景,助您精准匹配开发路径。
337 3
|
5月前
|
移动开发 小程序 前端开发
小程序开发平台有哪些?小程序开发制作软件推荐
小程序开发方案全解析:5种主流方式与选择指南 小程序开发需根据技术能力、预算、时间及功能需求综合决策。以下为5种主流开发方案及适用场景分析:
26054 0
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
637 0
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
353 0
在线课堂+工具组件小程序uniapp移动端源码
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
415 1
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目