首页 w3cschool使用教程指南 w3cschool微信小程序豆瓣电影案例的制作步骤详解

w3cschool微信小程序豆瓣电影案例的制作步骤详解

发布时间: 浏览量:47 0

想亲手做一个能展示电影信息的微信小程序吗?w3cschool就像一位耐心的编程老师,把复杂的小程序开发拆成了一串简单的积木,而豆瓣电影案例就是最适合新手的"入门积木套装",跟着下面的步骤一步步操作,你会发现开发小程序就像拼乐高,每一步都有明确的目标,拼完最后一块时,手机屏幕上跳动的电影列表会给你满满的成就感,不管你有没有编程基础,只要准备好好奇心和一点点耐心,这篇教程就能带你从零开始,把"豆瓣电影小程序"从想法变成能在手机上运行的小应用。

准备工作:让工具和账号先"站好队"

开始前得把"作战装备"备齐,就像做饭前要先把锅碗瓢盆摆好,第一步是打开w3cschool官网,注册一个账号——这个过程比注册社交软件还简单,输入手机号、验证码,设置个密码,点击"注册"按钮,几秒钟后页面就会跳转到学习中心,像收到了一张进入编程乐园的门票,注册完成后,记得在"我的课程"里找到"微信小程序开发实战",里面就藏着豆瓣电影案例的详细教程,免费开放的板块足够我们完成基础版开发。

接着要下载微信开发者工具,这是微信官方出的"小程序实验室",没有它可没法看到小程序的样子,在微信公众平台官网找到"开发者工具"下载页,根据自己的电脑系统(Windows或Mac)选择对应版本,安装时一路点击"下一步",就像给电脑装个新游戏,安装完成后打开工具,用微信扫码登录,第一次登录时界面会弹出"创建项目"的窗口,先别急着点,我们还需要一个"数据通行证"——豆瓣电影API接口。

豆瓣开放平台提供了电影数据接口,但申请正式密钥需要审核,对新手来说有点麻烦,w3cschool的教程里贴心地准备了测试用的API接口,直接复制教程里的接口地址就能用,省去了申请步骤,我当时把接口地址存在记事本里,就像把钥匙串挂在门口,后面随时能用,准备工作到这里就结束了,检查一下:w3cschool账号登录了,微信开发者工具安装好了,API接口地址存好了——就像出发前检查背包,东西齐了,心里才踏实。

项目初始化:在w3cschool搭好"小程序骨架"

准备工作做完,就该搭"房子"的框架了,打开w3cschool的在线编辑器,在"小程序开发"板块找到"创建新项目"按钮,点击后会弹出配置窗口,项目名称填"豆瓣电影小助手",目录选择电脑里的一个空文件夹(我当时建了个"小程序练习"文件夹,专门放这类项目),AppID可以先用测试号(点击"使用测试号"就行),模板选"空白模板"——就像选了一张纯白的画纸,接下来要自己画内容。

点击"确定"后,w3cschool的编辑器会自动生成小程序的基础目录结构,左边是文件列表,右边是代码编辑区,中间是预览窗口,我当时盯着文件列表看了半天:pages文件夹里有index和logs两个子文件夹,这就是小程序的页面;utils里放工具函数;app.json是全局配置文件……这些名字看着陌生,但用起来就像整理房间,每个文件都有自己的"抽屉",记得点击编辑器上方的"保存"按钮,系统会提示"项目初始化成功",那一刻感觉就像刚把积木底座搭好,接下来可以往上加零件了。

初始化后最好先预览一下效果,点击编辑器右上角的"预览"按钮,微信开发者工具会自动打开并加载项目,第一次预览时,屏幕上只有一个灰色的导航栏和白色的背景,像一间没放家具的空房间,别担心,这很正常,我们接下来要给这个"房间"添置"家具"——也就是电影列表、图片和文字。

获取豆瓣电影API接口:给小程序接"数据水管"

小程序要展示电影信息,得先从网上"搬数据",API接口就是连接小程序和数据的"水管",打开w3cschool教程里的"豆瓣电影API使用指南",里面有个测试接口地址:https://api.douban.com/v2/movie/top250(后面可以加参数控制显示数量),我把这个地址复制到浏览器里试了试,页面跳出一串密密麻麻的文字,像撒了一地的珍珠,虽然乱,但每颗"珍珠"都是电影的信息——标题、评分、海报图片地址……这些就是我们需要的数据。

在微信开发者工具里,数据请求需要设置"合法域名",不然小程序会"拒绝沟通",打开项目根目录下的app.json文件,找到"networkTimeout"节点,在里面添加"request": 10000(表示请求超时时间10秒),然后点击"详情"→"本地设置",勾选"不校验合法域名"(开发测试时用,正式发布前需要申请域名),我当时没勾选这个选项,结果请求数据时预览窗口一直显示"加载中",后来才发现是小程序在"安全检查",勾选后数据立马就出来了,像水管终于通了水。

为了方便调用接口,最好在utils文件夹里新建一个api.js文件,把请求数据的代码写在这里,就像把常用工具放在固定的抽屉里,在api.js里定义一个getMovieList函数,用wx.request发起请求,url填刚才的豆瓣API地址,method选"GET",success回调里把返回的数据存起来,写完后在index.js里引入这个函数,调用时就像喊一声"小助手,帮我拿电影数据",数据就会乖乖跑到小程序里。

页面结构设计:用WXML搭"电影展示架"

数据有了,接下来要设计"展示架"——也就是页面结构,打开pages/index/index.wxml,这是首页的结构文件,就像给房间画平面图,先在最上面放一个导航栏,用view标签包裹一个text标签,写"豆瓣电影Top250",字体大一点,颜色用豆瓣绿(#07C160),就像给页面戴了个漂亮的"帽子",我当时把导航栏高度设成80rpx,结果在手机上看太高了,后来改成60rpx,比例才协调,原来设计页面也需要"试穿"。

导航栏下面是电影列表,用scroll-view标签包裹,这样列表可以上下滑动,每个电影项用view标签做容器,里面放海报图片、标题、评分和上映年份,海报用image标签,src绑定电影数据里的poster地址;标题和评分用text标签,分别绑定title和rating.average,我给每个电影项加了个边框和圆角,就像给每本书套了个书皮,看起来整整齐齐。

为了让列表排列更美观,用wx:for循环渲染电影数据,在scroll-view里写wx:for="{{movieList}}",wx:key="id",这样小程序会自动把movieList数组里的每一项都变成一个电影项,刚开始我忘了写wx:key,预览时列表滑动会卡顿,加上后滑动就像丝绸一样顺滑,每个电影项的宽度设成160rpx,左右间距20rpx,一行能放两个,刚好适合手机屏幕,就像超市货架上的商品摆放,既不挤也不空。

页面底部加个加载提示,用text标签写"加载中...",初始时隐藏,当数据请求成功后显示电影列表,加载失败时显示"加载失败,请重试",我当时把提示文字颜色设成灰色,大小14rpx,放在页面中间,就像给读者一个温柔的"进度汇报",不会让人觉得等待难熬。

数据请求与渲染:让电影信息"动"起来

页面结构搭好了,该让数据"住"进去了,打开pages/index/index.js,在data里定义一个movieList数组,初始为空,就像准备好一个空书架,在onLoad生命周期函数里调用刚才在api.js里定义的getMovieList函数,请求成功后,把返回的data.subjects赋值给movieList,用this.setData({movieList: res.data.subjects})——这行代码就像对书架说"把书摆上去",数据立马就显示在页面上了。

数据渲染时要注意处理空值,比如有的电影没有上映年份,直接显示会空白,这时可以用三元表达式:{{item.year ? item.year : '暂无数据'}},就像给书架上的空位贴个"暂缺"标签,我当时没处理空值,结果有部电影的年份显示成了NaN,看起来很奇怪,加上判断后页面就干净多了,评分显示可以加个星星图标,用text标签写"★",颜色设成黄色,放在评分数字前面,就像给电影打了个亮眼的"分数牌"。

图片加载时可能会有延迟,给image标签加个mode="aspectFill"属性,让图片保持比例填充容器,不会变形;再加个placeholder-class,用灰色背景做占位图,就像给图片位置铺了块"桌布",等图片加载好再"揭开",我试了不加占位图,页面刚打开时图片位置一片空白,加了后看起来更舒服,就像餐厅提前摆好了餐具,客人来了不会手忙脚乱。

样式美化:用WXSS给页面"化个妆"

结构和数据都有了,最后给页面"化个妆"——也就是写样式,打开pages/index/index.wxss,先设置全局样式:page标签的背景色用#f5f5f5,就像给房间刷了一层浅灰色的墙,不刺眼;导航栏的背景色用豆瓣绿,文字居中,字体大小32rpx,font-weight设成bold,就像给标题加了个"高亮灯",我当时把导航栏文字颜色写成了黑色,结果在绿色背景上看不清,改成白色后瞬间清晰,原来配色也需要"互相配合"。

电影项容器的样式很重要,用border-radius: 10rpx;加box-shadow: 0 2rpx 10rpx rgba(0,0,0,0.1);,让每个电影项像浮在页面上的小卡片,摸上去好像有凹凸感,海报图片的宽高设成160rpx*220rpx,和电影院的海报比例差不多;标题文字限制两行显示,用text-overflow: ellipsis; overflow: hidden; white-space: nowrap;,太长的标题会自动加省略号,就像给文字"剪了个整齐的发型"。

为了让页面更有层次感,给电影项加个hover-class="movie-item-hover",定义hover样式时把阴影加深,背景色变浅,点击时会有反馈,就像按钮被按下去的感觉,我当时没加这个效果,页面看起来有点"死板",加上后点击电影项时能感觉到互动,就像和页面"握了个手",最后调整间距,导航栏和列表之间留30rpx,电影项上下间距20rpx,左右间距20rpx,整体看起来松紧合适,不会太挤也不会太空。

功能调试与运行:让小程序"跑起来"

所有代码写完后,该让小程序"跑起来"试试了,点击微信开发者工具上方的"编译"按钮,系统会自动检查代码错误,如果有红色警告,就根据提示修改——比如少写了个括号,或者变量名拼错了,我当时把"movieList"写成了"movielist",编译时控制台立马报错"movielist is not defined",改过来后编译成功,预览窗口里的电影列表唰地一下就出来了,那一刻比解开一道数学难题还开心。

调试时用"调试器"工具,点击"Console"面板,可以打印数据看看是否正确;"Sources"面板能断点调试,一步步看代码执行过程,我想看看电影数据到底是什么样的,就在getMovieList的success回调里写console.log(res.data),控制台里就会显示完整的JSON数据,像打开了数据的"行李箱",里面的每一件"物品"都看得清清楚楚。

最后点击"预览"按钮,用手机微信扫码,小程序就会在手机上打开,在手机上滑动列表,看看图片加载是否流畅,点击电影项是否有反馈,数据是否完整,我当时在手机上预览时,发现图片加载有点慢,回到编辑器把图片地址换成缩略图地址(在poster后面加"/small"),加载速度立马变快,原来优化细节能让体验提升这么多,确认没问题后,点击"上传"按钮,就能把小程序提交到微信公众平台,等审核通过后,别人也能搜到你的豆瓣电影小程序了。

跟着这些步骤做完,你会发现小程序开发并没有那么神秘,w3cschool就像一把"万能钥匙",帮你打开了小程序开发的大门,而豆瓣电影案例就是你拿到的第一把"战利品",从准备工作到最终运行,每一步都像解开一个小谜题,解开最后一个时,你不仅收获了一个能展示电影信息的小程序,更重要的是掌握了小程序开发的基本思路,以后想做天气小程序、图书小程序,都可以用同样的方法,把想法变成现实——毕竟,编程的乐趣不就在于把"我想"变成"我做"吗?

欢迎 发表评论:

请填写验证码

评论列表

暂无评论,快抢沙发吧~