系列文章

扫码体验,先睹为快

可以扫描下微信小程序的二维码,体验一下开发完毕的效果:

代码地址:

前言

Hello,又见面了~

相信你看到这篇文章的时候已经阅读了上篇文章的开发这个小程序的准备工作,如果你准备好了,那接下来让我们一起开始吧!


开发

本机当前环境:

操作系统:Windows 10

// 软件版本
Vue.js    : 2.9.6
Node.js   : v12.13.0
HBuilderX : 2.7.5.20200519
QQMusic   : 17.77.5338.0714    // 锻炼听力专用
WeChat    : 2.9.5.41           // 寻找对象专用

页面开发

1 首页的页面开发

初始工作我们已经完成了,接下来我们进入每个页面的开发。

首先我们在pages目录下创建index目录 -> 创建index.vue文件

创建好文件之后,还需要在pages.json中添加路由:pagesjson文件源码地址:pages.json

1.1 首页的UI图

1.2 核心代码分析

「我们可以把该页面分成三个部分:大图Logo及搜索、轮播图、电影列表」

页面代码大家可以直接打开首页源码(首页源码地址)复制到你的 index.vue 文件中查看效果,页面代码非常简单,我这边把关键代码分析下。

 * @description:  首页伪代码示例
 * @author:       zhc
 * @date:         2020-08-17 22:27:32

<template>
 <view class="container">
  <!-- loading动画 -->
  <mi-loading ref="loading" title="加载中" :hasMask="true"></mi-loading>
  <!-- 整个页面使用<scroll-view>标签 -->
  <scroll-view>

      
### 大图Logo及搜索 --正常编写
  <view class="topBar">
   <image src="~@/static/img/banner.png" mode="widthFix" class="response"></image>
   <view class="search-t">请输入关键字搜索</view>
   </view>  

      
### 轮播图 --使用的colorui的组件
   <swiper>
    <swiper-item v-for="(item,index) in swiperList" :key="index" :class="cardCur==index?'cur':''" @click="getBanner(item)">
     <view class="swiper-item">
      <image :src="item.url" mode="aspectFill" v-if="item.type=='image'"></image>
     </view>
    </swiper-item>
   </swiper>

      
### 电影列表 --写好样式,使用v-for循环添加,使用<uni-load-more>标签上拉加载更多
   <view class="movieH">豆瓣高分</view>
   <view class="movieBox">
   </view>
   <uni-load-more :status="listStatus" :contentText="contentText" v-if="loadStatu"></uni-load-more>
  </scroll-view>
 </view>
</template>
<script>
// onShareAppMessage函数作用是点击右上角分享小程序,可以配置分享的名称及成功或者失败后的回调函数
onShareAppMessage: function(res) {
 var that = this;
 return {
  title: '老赵的杂货铺',
  path: 'pages/index/index' ,
  success: function(res) {
   console.log("转发成功:" + JSON.stringify(res));
   that.shareClick();
  },
  fail: function(res) {
  console.log("转发失败:" + JSON.stringify(res));
  }
 }
}

// onReachBottom函数作用是页面触底触发的函数,当加载一定数量,提示没有更多了
onReachBottom: function() { 
 console.log('触底’')
 this.getmorenews()
}   

// 这里操作了Storage,把首页的图片和标题存储起来,用作详情页的背景图片和标题
getDate(item) {
 uni.setStorage({
  key: 'storage_bg',
 data: item.images.small,
 success: function() {
  console.log('item.images.small');
 }
 })
}
</script>

1.3 总结

整个页面加上css代码总共400行左右,其实还是比较简单,如果你在过程中遇到了问题,可以在下面评论处留言,我会第一时间回复你的疑问~

2 详情页面开发

首页我们已经完成了,接下来我们进入列表详情页面的开发。

首先我们在pages目录下创建detail目录 -> 创建index.vue文件

创建好文件之后,还需要在pages.json中添加detail路由:pagesjson文件源码地址:pages.json

2.1 详情的UI图

2.2 核心代码分析

「我们依旧可以把该页面分成三个部分:电影大图、简介、演职员及评论、预告片」

详情页面代码大家可以直接打开详情页的源码(详情页源码地址)复制到你的 /detail/index.vue 文件中查看效果,页面代码也是非常简单,我照例把关键代码分析下。

 * @description:  详情页面伪代码示例
 * @author:       zhc
 * @date:         2020-08-17 22:54:09

<template>  
### 电影大图
  <view class="detailBgMax">
   <view class="detailBg" :style="{backgroundImage: 'url(' + viewBg + ')'}">></view>
  </view>

  
### 简介、演职员及评论
  <scroll-view class="scrollBox">
    <text v-if="summarStatu">剧情简介: </text>
    <text v-if="summarStatu">演职员: </text>
    <text class="hTitle" v-if="summarStatu">精选评论</text>
        <!-- 评分标签使用的是uni自带的<uni-rate> -->
        <uni-rate></uni-rate>
  </scroll-view>

  
### 预告片
    <!-- #ifdef MP-WEIXIN || MP-BAIDU,条件注释语句,让预告片只在微信小程序上显示,因为当时使用uni-app把该项目代码打包成APP时视频出了一些问题,所以加了条件注释,让其只在微信小程序上显示 -->
  <!-- #ifdef MP-WEIXIN || MP-BAIDU -->
  <view style="width: 98%;margin: 0 auto;">预告片 / 剧照
   <video controls></video>
    </view>
  <!-- #endif -->
</template>
<script>
  // onLoad是当页面加载完毕执行,在这里读取了首页存储的图片和标题,
  // 我们通过UI图可以发现背景图会随着不同页面而变化,其实背景图就是首页存储的图片
  // 通过CSS属性 filter: blur(60rpx),把图片处理成模糊的效果
  onLoad: function(option) {
  // 获取本地存储的图片
  uni.getStorage({
  key: 'storage_bg',
  success: function(res) {
  that.viewBg = res.data
 }
 });
}
</script>

2.3 总结

这里强行总结一下,如果你在这里遇到了问题,可以在评论处留言,除了夜里睡觉时间,我会第一时间回复你的疑问~~

3 搜索页面

首页、详情我们已经完成了,是不是比你想象中的简单,接下来我们进入搜索页面的开发。

首先我们在pages目录下创建search目录 -> 创建index.vue文件

老规矩,创建好文件之后,还需要在pages.json中添加search路由:pagesjson文件源码地址:pages.json

3.1 搜索的UI图

3.2 核心代码分析

「我们依旧可以把该页面分成...,分成两个模块,搜索框、下方搜索之后的列表」


搜索页面代码大家如上节一样可以直接打开搜索页面的源码(搜索页面源码地址)复制到你的 /search/index.vue 文件中查看效果,页面代码也是非常简单,我依旧、照例、还是把关键代码分析下。

 * @description:  搜索页面伪代码示例
 *  @author:      zhc
 * @date:         2020-08-17 23:40:13

<template>
### 搜索框
  <view style="background-color: #CAF2F2">
   <cu-custom :isBack="true">
        <input class="search-t" placeholder="请输入关键字搜索" @input="messagesearch"></input>
   </cu-custom>
  </view>

### 搜索之后的列表
  <scroll-view>
   <!-- 电影列表 -->
   <view class="movieH">搜索结果</view>
   <view class="movieBox">
    <view v-for="(item, index) in movieInfo" ></view>
   </view>
  </scroll-view>
</template>

搜索页面的一些逻辑其实和首页的基本相同,这里就不做过多赘述。

后记

现在已经一点了,越写越佩服一直在坚持写博客的大佬们,我们打开阅读一篇文章可能只需要几分钟,但是编写一篇优质的博客可能需要几天,向所有的博主致敬~

这个项目三个页面下来代码不到2000行,阅读上手还是比较容易,如果在过程中遇到问题或是编写错误,可以在下方评论处留言,我会第一时间回复.

到这里「手牵手写小程序」的旅程就该结束了,期待下次再见!

谢谢你愿意花时间阅读这篇文章,希望可以对你有所帮助,早点休息,别熬太晚梦会短~

手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇)的更多相关文章

  1. 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇)

    系列文章 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇) 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇) 前言 好久不见,很久没更新博客了,前段时间 ...

  2. 零基础开发一款微信小程序商城

    零基础开发一款微信小程序商城 一个朋友问我能不能帮忙做个商城?我一个完整网页都写不出的 菜鸟程序员,我该怎么拒绝呢?好吧,看在小程序这么火的形势下,我还是答应了!找了个开源项目,差不多花了三天时间搞定 ...

  3. 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  4. 微信正式开放内测“小程序”,不开发APP的日子真的来了?

    关注,QQ群,微信应用号社区 511389428 微信正式开放内测“小程序”,不开发APP的日子真的来了? 明星公司 缪定纯 • 2016-09-22 09:05 讨论了很久的微信应用号终于来了,不过 ...

  5. 微信小程序的功能开发工具跟公众号的差别,小程序是一种减负思维对简单APP是巨大打击

    微信小程序的功能开发工具跟公众号的差别,小程序是一种减负思维对简单APP是巨大打击 摘要: 小程序和公众号最大的区别有如下四点:1.小程序没有粉丝,开发者在后台能看到的只能是累计用户访问数以及实时统计 ...

  6. (转)快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  7. 基于微信小程序的系统开发准备工作

    腾讯推出微信小程序也有一段时间了,在各种行业里面也都掀起一阵阵的热潮,很多APP应用被简化为小程序的功能迅速推出,同时也根据小程序的特性推出各种独具匠心的应用,相对传统的APP来说,微信小程序确实能够 ...

  8. 移动开发之【微信小程序】的原理与权限问题以及相关的简易教程

    这几天圈子里到处都在传播着这样一个东西,微信公众平台提供了一种新的开放能力,开发者可以快速开发一个小程序,取名曰:微信公众平台-小程序 据说取代移动开发安卓和苹果,那这个东东究竟是干吗用的?但很多人觉 ...

  9. 微信小程序的开发:通过微信小程序看前端

    前言 2016年9月22日凌晨,微信官方通过"微信公开课"公众号发布了关于微信小程序(微信应用号)的内测通知.整个朋友圈瞬间便像炸开了锅似的,各种揣测.介绍性文章在一夜里诞生.而真 ...

随机推荐

  1. 小书MybatisPlus第6篇-主键生成策略精讲

    本文为mybatis系列文档的第6篇,前5篇请访问下面的网址. 小书MybatisPlus第1篇-整合SpringBoot快速开始增删改查 小书MybatisPlus第2篇-条件构造器的应用及总结 小 ...

  2. iOS打包测试ipa

    1. 连接iphone真机 2.选中真机, archive

  3. 说出来也许你不信,我被 Linux 终端嘲笑了……

    人这一辈子,真的是非常不容易:读书时,被老师.同学嘲笑,工作时,被老板.同事嘲笑,就连出去撸个串儿,还可能被朋友嘲笑-- 这些也就算了,毕竟大家还都是同类,都是活生生的人.但是,你如果被 Linux ...

  4. Python操作adb命令脚本

    一.脚本代码(有错误,抓紧改进中) import os import datetime date1=datetime.datetime.now().strftime('%Y%m%d') date2=d ...

  5. Java MD5获取

    MD5算法具有以下特点: 1.压缩性:任意长度的数据,算出的MD5值长度都是固定的. 2.容易计算:从原数据计算出MD5值很容易. 3.抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD ...

  6. 萌新学渗透之Hack The Box_Beep

    我将我的walkthrough过程用视频解说的形式记载 视频地址https://www.bilibili.com/video/BV1VT4y1j7dg 一是因为看我视频的后来者应该都是刚入门的新手,视 ...

  7. springboot2.2 集成 activity6 请假完整示例

    新手学习记录.写在springboot test 示例  示例代码地址看结尾.后面有带页面的示例. SpringBoot Test无页面简单示例 员工请假流程 员工发起申请,附带请假信息(请假几天) ...

  8. 简单了解InnoDB底层原理

    存储引擎 很多文章都是直接开始介绍有哪些存储引擎,并没有去介绍存储引擎本身.那么究竟什么是存储引擎?不知道大家有没有想过,MySQL是如何存储我们丢进去的数据的? 其实存储引擎也很简单,我认为就是一种 ...

  9. 关于if语句的细节

    看下面两个语句: if(p->key>key) p=p->left; if(p->key<key)p=p->right; 上面的写法是很有问题的: 如果第一条条件满 ...

  10. 老哥,您看我这篇Java集合,还有机会评优吗?

    集合在我们日常开发使用的次数数不胜数,ArrayList/LinkedList/HashMap/HashSet······信手拈来,抬手就拿来用,在 IDE 上龙飞凤舞,但是作为一名合格的优雅的程序猿 ...