草庐IT

零基础一天学会豆瓣电影微信小程序

一杯好心情 2023-04-08 原文

第1 章什么是小程序?

1. 2017 年度百度百科十大热词之一

2. 微信小程序,简称小程序,英文名Mini Program,是一种不需要下载安装即可使用的应用 ( 张小龙对其的定义是无需安装,用完即走,实际上是需要安装的,只不过小程序的体积特别小,下载速度很快,用户感觉不到下载的过程)

3. 小程序刚发布的时候要求压缩包的体积不能大于1M,,否则无法通过,在2017 年4 月做了改进,由原来的1M 提升到2M;

4. 2017 年1 月9 日0 点,万众瞩目的微信第一批小程序正式低调上线。

第2 章小程序可以干什么?

1. 同App 进行互补,提供同app 类型的功能,比app 使用方便简洁

2. 通过扫一扫或者在微信搜索即可下载

3. 用户使用频率不高,但又不得不用的功能软件,目前看来小程序是首选

4. 连接线上线下

5. 开发门槛低,成本低

第3 章小程序开发资料

3.1 相关资料

1) 官网:微信公众平台

2) 微信开发工具

3) 下载地址

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

第4 章开发小程序储备知识

4.1 Flex 布局简介

4.1.1 什么是flex 布局?

1) Flex 是Flexible Box 的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。

2) 任何一个容器都可以指定为Flex 布局。

3) display: ‘flex’

4.1.2 flex 属性

1) flex-direction:

row(默认值):主轴为水平方向,起点在左端。row-reverse:主轴为水平方向,起点在右端。

column:主轴为垂直方向,起点在上沿。

column-reverse:主轴为垂直方向,起点在下沿。

学习教程:Flex 布局语法教程 | 菜鸟教程

4.2 小程序适配方案: rpx (responsive pixel 响应式像素单位)

a) 小程序适配单位:rpx

b) 规定任何屏幕下宽度为750rpx

c) 小程序会根据屏幕的宽度不同自动计算rpx 值的大小

d) Iphone6 下:1px = 2rpx

4.3 什么是JSON数据格式:

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,"名称/值"对的集合,在不同的语言中被理解为对象(Object)。

详细概念学习:https://www.cnblogs.com/abella/p/11125685.html

一、程序安装

1):百度搜素“微信公众平台”,进行开发账号注册,如下图所示:

 

2):注册完毕后,依次选择“开发”->“工具”->“下载”,根据机器操作系统类型,选择相应的开发工具软件,如下图所示:

3):右键以管理员身份运行下载的工具安装文件,然后点击“下一步”,如下图所示:

4):直至安装结束,点击“完成”,如下图所示:

二、设置页头页尾导航栏

1):找到app.json文件

2):设置页头中的背景颜色/名字/字体颜色

3):设置页尾导航

①:设置底部导航栏文字颜色/选中颜色/背景颜色

②:设置底部导航栏中第一个属性的页面路径/图片/选中时候图片/文字

③:设置第二个属性的页面路径/图片/选中时候图片/文字

④:设置第三个属性的页面路径/图片/选中时候图片/文字

注:底部导航栏最少要有2个!

三、主页面轮播图

1):新建主页面

在app.json中pages里可以新增页面

①:页面的js文件,是页面的生命周期,主要是用来请求api数据/处理数据/执行按钮事件等

②:json文件是用来处理json数据,一般用来做配置

③:.wxml是用来显示页面内容,绑定/显示数据

④:wxss页面样式文件

2):轮播图样式

.view{
  background-color: #3a3a3a;
  min-height: 100%;
}
.swiper{
  height: 400rpx;
}
.item{
  height: 400rpx;
  width: 100%;
}

3):在js文件中设置图片路径

4):wxml页面样式布局

四、调用豆瓣api接口显示数据

①:发起数据请求

②:设置请求的URL地址(https://api.douban.com/v2/movie/new_movies?apikey=0df993c66c0c636e29ecbb5344252a4a)

③:设置请求的数据格式

④:得到请求的数据

⑤:把请求过来的数据保存到数组中,并且发送到前台页面

注:初始请求的代码必须放在onload中,请求的参数不能少!

1):得到请求结果

①:得到的数据是一个对象集合,里面存放着每条数据,页面上就是显示这些数据!

五、页面显示豆瓣电影数据

1):显示电影的图片

2):设置图片的样式

3):页面显示如下所示

4):显示右侧电影信息

①:页面样式代码

②:最终结果如下:

六、电影推荐功能

1):数据请求页面

/* 输入框内字体大小 */
.select_text{
  font-size: 30rpx;
}
/* 下拉列表图片 */
.select_img{
  width: 40rpx;
  height: 40rpx;
  display: block;
  transition:transform 0.3s;
  margin-left: 260px;
}
/* 搜索框的样式 */
.select_box{
  background: #fff;
  width: 100%;
  /* 相对定位 */
  position: relative;
}
.select{
  width: 100%;
  height: 70rpx;
  border:1px solid #efefef;
  border-radius: 8rpx;
  display: flex;
  align-items: center;
  padding: 0 20rpx;
}

显示默认数据:

 

③:显示结果

④:点击下拉图片触发事件

selectTap(){
         this.setData({
            show: !this.data.show
          });
      },

show:false,//控制下拉列表的显示隐藏,false隐藏、true显示

⑤:下拉列表的内容

⑥:下拉列表内容js代码

⑦:下拉列表样式

.option_box{
  position: absolute;
  top: 70rpx;
  width: 100%;
  border:1px solid #efefef;
  box-sizing: border-box;
  overflow-y: auto;
  background: #fff;
  /* 点击下拉列表显示动画特效 */
  transition: height 0.3s;
}
.option{
  display: block;
  line-height: 40rpx;
  font-size: 30rpx;
  border-bottom: 1px solid #efefef;
  padding: 10rpx;
}

⑧:具体结果

 

⑨:选中下拉列表得到结果

// 点击下拉列表
optionTap(e){
  let Index=e.currentTarget.dataset.index;//获取点击的下拉列表的下标
  this.setData({
    index:Index,
    show:!this.data.show
  });
  if(Index==1)
  {
    //所有调用电影的数据,必须写在这里
    var page=this;
    // wx.request:请求豆瓣电影数据
    wx.request({
      url: 'https://movie.douban.com/j/search_subjects?type=movie&tag=台湾',
      header:{

        'Content-Type':'json'
      },
      success:function(res){
        var result=res.data.subjects;
        console.log(result)
        page.setData({movies:result});
      }
    })
  }

七、点击显示电影详情页面

1):在app.js之中设置跳转

2):在recommand.js页面中添加detail事件

八、显示电影详情数据

1):根据ID查询电影详情数据(https://movie.querydata.org/api?id=)

2):显示详情数据

3):页面代码

4):样式代码

5):显示结果

九、电影查询

1):页面内容

2):页面样式

3):显示结果

十、显示搜索结果

1):页面内容

2):页面样式

.inputShow{
    padding-left: 35px;
    color: white;
    font-size: 12px;
  }

3):如何在下面实时获取文本框的内容

inputShow(e){
        this.setData({inputVal:e.detail.value})
    },

4):显示搜索结果

十一、显示搜索的电影

1):页面js代码(https://m.maoyan.com/ajax/search?stype=0&cityId=59&kw=)

2):显示json数据

3):页面内容显示

4):页面样式

 /* 1px=0.07毫米 */
  /* //movie-info:图片和电影信息之间的间距 */
  .movie-info{
    color: #FFFFFF;
    font-size: 12px;
    padding-top: 20px;
    line-height: 20px;
    margin-left: 30px;
  }
.SearchButton{
    background-color: #DD5E0E;
    color: white;
    font-size: 17px;
    height: 54rpx;
    line-height: 54rpx;
  }

5):页面显示结果

十二、点击查看详情

1):页面代码:

<view class="main">
  <view class="hr"></view>
  <image src="{{film.img}}" class="img" mode="widthFix"></image>
  <view class="hr"></view>
  <text>电影名称:{{film.nm}}</text>
  <view class="hr"></view>
  <text>电影类型:{{film.cat}}</text>
  <view class="hr"></view>
  <text>主要演员:{{film.star}}</text>
  <view class="hr"></view>
  <text>上映地区:{{film.src}}</text>
  <view class="hr"></view>
  <text>上映时间:{{film.pubDesc}}</text>
  <view class="hr"></view>
  <text>电影预告:</text>
  <video src="{{film.vd}}" style="width: 100%;"></video>
  <view class="hr"></view>
  <text>电影描述:{{film.dra}}</text>
  <view class="hr"></view>
</view>

2): 样式代码:

.main{
  background-color: rgba(32, 30, 30, 0.726);
  color: white;
}

.hr{
  height: 5rpx;
  border-top: 1rpx solid white;
  border-bottom: 1rpx solid white;
  width: 100%;
}
.img{
  width: 100%;
}

3): js代码(https://m.maoyan.com/ajax/detailmovie?movieId=)

/**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var page = this;
    var id = options.id;
    wx.request({
      url: 'https://m.maoyan.com/ajax/detailmovie?movieId='+id,
      header:{},
      success:function(res){
        page.setData({film:res.data.detailMovie});
      }
    })
  }

4): 查询详情效果图

有关零基础一天学会豆瓣电影微信小程序的更多相关文章

  1. 微信小程序通过字典表匹配对应数据 - 2

    前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立

  2. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  3. 微信小程序开发入门与实战(Behaviors使用) - 2

    @作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors    1、什么是behaviors    2、behaviors的工作方式    3、创建behavior    4、导入并使用behavior    5、behavior中所有可用的节点    6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors    1、什么是behaviorsbehaviors是小程序中,用于实现

  4. Ubuntu20.04系统WineHQ7.0安装微信 - 2

    提供3种Ubuntu系统安装微信的方法,在Ubuntu20.04上验证都ok。1.WineHQ7.0安装微信:ubuntu20.04安装最新版微信--可以支持微信最新版,但是适配的不是特别好;比如WeChartOCR.exe报错。2.原生微信安装:linux系统下的微信安装(ubuntu20.04)--微信适配的最好,反应最快,但是微信版本只到2.1.1,版本太老,很多功能都没有。3.深度deepin-wine6安装微信:ubuntu20.04+系统deepin-wine6安装新版微信--综合比较好,当前个人使用此种方法1个月,微信版本3.4;没什么大问题,尚可。一、WineHQ7.0安装微信

  5. 微信小程序订餐系统 - 2

    对传统的餐饮商家来说,小程序很好地解决了餐厅线下线上连接的问题,在引流获客、节约人力、营销宣传、塑造会员体系、改善消费体验等方面都有很大帮助。小程序点餐可以帮助餐饮企业节省一大把人力开支。一个包含扫码点单、菜品管理、优惠券推送、外卖配送的小程序,商家花几万元就能完成开发测试并投入。商家为什么要开通“扫码点餐”1.解决服务员不够用的问题。2.不怕顾客跑单漏单。3.在微信就能管理菜品、查看营业额。4.订单小票显示顾客桌号和已点菜品。5.可在“附近的小程序”找到您的门店。如今餐饮业常用的三种经营模式:1堂食点单模式客人通过小程序堂食点单。商家可以在微信扫码点餐小程序管理后台根据自己店内情况来设置不同

  6. 最新版人脸识别小程序 图片识别 生成二维码签到 地图上选点进行位置签到 计算签到距离 课程会议活动打卡日常考勤 上课签到打卡考勤口令签到 - 2

    技术选型1,前端小程序原生MINA框架cssJavaScriptWxml2,管理后台云开发Cms内容管理系统web网页3,数据后台小程序云开发云函数云开发数据库(基于MongoDB)云存储4,人脸识别算法基于百度智能云实现人脸识别一,用户端效果图预览老规矩我们先来看效果图,如果效果图符合你的需求,就继续往下看,如果不符合你的需求,可以跳过。1-1,登录注册页可以看到登录页有注册入口,注册页如下我们的注册,需要管理员审核,审核通过后才可以正常登录使用小程序1-2,个人中心页登录成功以后,我们会进入个人中心页我们在个人中心页可以注册人脸,因为我们做人脸识别签到,需要先注册人脸才可以进行人脸比对,进

  7. ruby-on-rails - 您如何找到一天在一个月中的星期几? - 2

    我似乎无法理解这个可能很简单的问题..假设我有日期..Fri,14Sep201218:37:50+0200我如何找出这个月的这个日期是星期几?是第一个,第二个..?第三个?谢谢! 最佳答案 为什么要使用图书馆?Ruby默认有它:Weeknumber:Theweek1ofYYYYstartswithaSundayorMonday(accordingto%Uor%W).Thedaysintheyearbeforethefirstweekareinweek0.%U-Weeknumberoftheyear.Theweekstartswith

  8. 微信小程序切换云环境 - 2

    在开发微信小程序的时候,我们可能需要开发环境和测试环境,或者其他环境,下面是切换环境的方法。首先需要明确的是:前端的页面代码是不区分环境的,环境的区分指的是云函数、云数据库、云存储这些。1、更改云函数的使用云环境这里我们从cloud1更改为test-cloud,这个改完是没有用的,因为在前端代码指定了使用的云环境。cloudfunctions文件和miniprogram文件虽然都在一个目录下,但是这两个没有直接联系。2、在evList.js中添加自己云环境evList.js存储了云环境列表,这里把test-cloud加到这个列表里,需要填写envId和alias,参照cloud1写就行。3、更

  9. Spring Boot中的微信支付(小程序) - 2

    前言微信支付是企业级项目中经常使用到的功能,作为后端开发人员,完整地掌握该技术是十分有必要的。一、申请流程和步骤图1-1注册微信支付账号获取微信小程序APPID获取微信商家的商户ID获取微信商家的API私钥配置微信支付回调地址绑定微信小程序和微信支付的关系搭建SpringBoot工程编写后台支付接口发布部署接口服务项目使用微信小程序或者UniAPP调用微信支付功能支付接口的封装配置jwt或者openid的token派发原生微信小程序完成支付对接二、注册商家2.1商户平台商家或者企业想要通过微信支付来进行商品的销售,必须先通过微信平台(pay.weixin.qq.com)去将商家进行注册。注册成

  10. 微信小程序顶部标题栏与胶囊对齐 - 2

    介绍    最近在做微信小程序时,顶部标题栏总是与胶囊对不齐。往往是在这款手机上对齐了,在另外一款手机差很多。我在查阅资料后,提出了一种方法解决这个问题,即:在页面onLoad或组件created时,利用微信小程序提供的API,获取系统状态栏高度和胶囊信息,进而动态调整顶部标题栏样式。在苹果、小米、荣耀手机做验证,能做到精准对齐。理论        胶囊样式应该是垂直居中,有1px的border,border-radius为18px。        若要使顶部标题栏与胶囊对齐,则其高度必须是导航栏高度,标题栏内容也要垂直居中,顶部标题栏的外边距或内边距必须是状态栏高度。        如果顶部

随机推荐