一个简单的仿豆瓣电影的微信小程序(组图)

2021-04-29
来源:网络整理

一个简单的微信小程序,模仿豆瓣电影。让我与您分享一个教程。

最近,我不想写论文,我只是想做些新东西。只需看一下官方文档,花3天时间编写一个模仿微电影的简单微信小程序即可。让我与您分享本教程。

源代码和效果图

单击此处获取源代码,欢迎加星标

如何运行:

效果图如下

开发环境和项目简介

提供了一个开发人员工具,该工具可以完成的API和页面的开发和调试,代码查看和编辑以及的预览和发布。下载链接

下载后,打开工具,选择代码目录和应用程序,然后检查选项,这将创建几个基本页面。

在编写代码的第二天,微信开发人员工具进行了新修订,比原始版本要好得多。原始的调试界面和编辑代码不在同一页面上,这很麻烦。现在,它就像通常的前端调试一样。调试界面与代码编辑页面位于同一界面,更加方便。

微信小程序商城demo_微信小程序怎么开发_微信小程序商城开发界面豆瓣

项目代码结构

在这里,创建新目录后,您可以选择添加页面,js,wxml,wxss,json文件。如果直接添加页面文件,将在目录中直接生成四个与目录名称相同的后缀文件。的组成,例如:.js,.wxml,.wxss,.json。后缀.js的文件是脚本文件,后缀.json的文件是配置文件,后缀.wxss的文件是样式表文件,后缀.wxml的文件是页面结构文件。

杜邦电影API

实际上,前三个API返回的数据是相同的,但是返回的电影类型数据是不同的,因此在列表页面中,我们只需要传递不同的类型。电影的基本信息(海报,名称,等级)显示在电影列表页面和主页上,因此该部分可以作为模板使用,以供公众使用。

总体思路是这样,相对简单。

配置小程序窗口和导航栏

在根目录的app.json文件中配置小程序的窗口样式和导航栏

属性信息如图所示,来自官方网站

点击顶部的“编译”以查看效果

在调试特定页面时,我们可以在面板顶部的中间添加“添加编译模式”,并填写相关参数,因此我们无需从主页进行调试。

微信小程序商城demo_微信小程序怎么开发_微信小程序商城开发界面豆瓣

特定代码的准备

这里仅讨论主页代码,其他页面上使用的属性基本相同。小程序的语法此处未介绍,请先浏览官方网站

wx。()

在刚开始进入页面时,当尚未加载数据时,我们希望发挥作用,我们可以直接使用的API

wx。()

显示提示框,您需要主动调用wx以关闭提示框

onLoad: function () { wx.showLoading({ title: '全力加载中...', }) }

加载后,当您需要关闭时,只需调用wx。();

用于监视页面加载的方法

wx。()

请求数据以调用wx。();

单击此处以获取详细的属性介绍

由于需要在列表和页面中同时使用所请求的电影列表,因此我将其作为全局方法写在app.js中

但是,在调用接口时发现了这样的错误

原因是在我的开发配置中,豆瓣api的域名未添加到合法域名中。

因此,只需在配置中添加所需的内容即可。

因此,在.js中,请按以下方式调用此全局方法:

//获取应用实例 var app = getApp()

Page({ data: { motto: 'Hello World', userInfo: {}, films:[{},{},{}] }, onLoad: function () { wx.showLoading({ title: '全力加载中...', }) console.log('onLoad') var that = this; var typelist = ["in_theaters","coming_soon","top250"]; var titlelist = ["正在热映","即将上映", "TOP250电影"]; for(let i = 0;i<typelist.length;i++){ var type = typelist[i]; app.getFilminfo(type, 0, 8, function (res) { wx.hideLoading(); var data = res.data; data.subjects.map(function (item) { if (item.title.length > 8) { item.title = item.title.slice(0, 7) + "..."; } if (item.rating.average>=9.5){ item.rating.star = "star10"; }else{ item.rating.star = "star" + Math.round(item.rating.average); } console.log(item.rating.star); }) that.data.films[i] = {title:titlelist[i],data:data.subjects,type:typelist[i]}; that.setData({ films: that.data.films }); console.log(that.data.films); }) } } })

我们使用“更多”按钮跳转到相应的电影列表列表页面,因此我们需要绑定事件

在.wxml中,

更多>

它对应于事件的名称微信小程序商城开发界面豆瓣,我们需要设置data-type属性。属性值为电影列表类型

在.js

toView: function(e) { var temp = e.currentTarget.dataset;//获取当前组件上由data-开头的自定义属性组成的集合 wx.navigateTo({ url: '../list/list?type=' + temp.type//temp.type即是当时data-type属性值 }) },

wx。()是用于路由跳转的api

模板

由于电影的基本信息会显示在多个页面上,因此我们建议单独编写电影预览模板

<template name="movieThumb"> <view wx:key="id" class="film-item" data-title="{{title}}" data-id="{{id}}" bindtap="detail"> <image src="{{images.medium}}" alt="{{alt}}" class="film-image"></image> <text class="film-title">{{title}}</text> <view class="film-rate" wx:if="{{rating.average!=0}}"> <view class="film-star {{rating.star}}"></view> <text>{{rating.average}}</text> </view> <text class="film-rate" wx:else>暂无评分</text> </view> </template>

模板名称设置为“”

例如,如果该模块在主页上有用,则可以在.wxml中按以下方式调用它

<import src="../template/movieThumb.wxml" /> <scroll-view scroll-x="true" class="filmlist"> <template is="movieThumb" wx:for-items="{{filminfo.data}}" wx:for-item="film" wx:key="id" data="{{...film}}"> </template> </scroll-view>

首先在这里书写,您可以只看其他代码,仍然需要阅读更多文档,编写一个项目进行练习,很容易上手!

分享