从零开始写个一个豆瓣电影 (小程序教程1)

微信小程序内测至今也有20天左右,也有很多人作出了很多不错的DEMO并发布到github了。前几日看见了豆瓣电影这个demo,感觉很不错,也跟着做了一个,作为复习巩固文档API用。

废话不多说,直接进入正题:

第一节只写一个首页的展示,数据用的是自己写的虚拟的数据

新建一个demo,不要使用微信自带的DEMO,直接从零开始写起:

首先创建3个文件:

app.json

app.js

apps.wxss

app.json  : 主要写配置项:内容如下,具体的每个key值对应的意思,这里就不再细说了,可以看我之前的配置指南,

{

"pages":[
"pages/index/index",
"pages/rank/rank",
],
"window":{
"enablePullDownRefresh":true,

"backgroundColor":"#eee",

"navigationBarTitleText": "上导航标题文字",

"navigationBarTextStyle":"white"
},

"tabBar": {
"color": "#d7ced5",

"selectedColor": "#535f71",

"borderStyle": "white",
"backgroundColor": "#f9f9f9",

"list": [
{
"pagePath": "pages/index/index",
"text": "推荐电影",
"iconPath": "images/board.png",
"selectedIconPath": "images/board-actived.png"
},

{
"pagePath": "pages/rank/rank",
"text": "北美票房",
"iconPath": "images/note.png",
"selectedIconPath": "images/note-actived.png"
}
]
},

"networkTimeout": {
"request": 10000,
"downloadFile": 9000,
"uploadFile":8000,
"connectSocket":7000
},

"debug": true
}

app.js  :  主要用来注册一个小程序的实例

App({
onLaunch: function () {

},
onShow: function () {

},
onHide: function () {

},
globalData: ‘I am global data‘
});

app.wxss : 公用样式,基本等同于CSS,暂时不需要写内容。

创建好3个文件后,就可以开始写页面的内容了:

新创建2个文件夹images和pages,一个放图片一,个放页面。

目前只pages下面再创建2个文件夹index和rank,每个文件下分别创建json,js,wxml,wxss文件,此时目录如下:

虽然不一定4个文件类型都需要用到,但为了之后方便,建议还是先创建好,需要用到的时候就比较方便了,不用再去创建。

首先写index.js:   (为了模拟循环数组,data下面的moivelist还需要多复制几份,这里只写了一份出来,imgsrc路径要写好)

Page({
    data:{
    moivelist:[{
    imgsrc: "../../images/AN2.jpg",
    title: "肖申克的救赎",
    introduce: "The shrakwos RedenpeTion(1994)",
    author: "弗兰克*德拉立邦",
    rank: "9.6"
}
]

}

,

onLoad: function(options) {
console.log(1);
},
onReady: function() {
// Do something when page ready.
},
onShow: function() {
// Do something when page show.
},
onHide: function() {
// Do something when page hide.
},
onUnload: function() {
// Do something when page close.
},
onPullDownRefresh: function() {
// Do something when pull down
},
// Event handler.
viewTap: function() {
this.setData({
text: ‘Set some data for updating view.‘
})
}
})

这里出现了很多on函数事件,对应页面的生命周期每个过程对应的事件,这里暂时先关注data对象

小程序是以数据驱动的,页面进来的时候通过动态获取数据,通过{{xxx}}将数据绑定,并将数据渲染到视图层,这里先以一个虚拟的data数据模拟

然后写index.wxml文件:

从上面显示的首页的图片来看,主要是1个标题,以及下面一个列表,列表用过循环来渲染出所有的数据

标题:  标题比较简单,主要是写css

<view class="head-title">
<text>豆瓣电影top250</text>
</view>

这里主要讲下面的列表循环,可以发现我们只要写好列表中的第一个就可以了,其他的通过循环来展示

列表主要分为左中右三块,分别为图片,内容,以及评分3块

<block wx:for="{{moivelist}}">  //循环渲染,wx:for="{{ xxx }}" 代表循环js文件里面的data数据中的xxx

<view>

//微信循环时会给出每个项目的内容以及每个项目的下标,默认为item和index,item.imgsrc意为对象的(imgsrc)  key值

图片:

<image class="moive-img" style="" mode="" src="{{item.imgsrc}}" binderror="" bindload=""></image>

内容:

<view class="moive-content">
     <view class="content-titile">
        <text >{{item.title}}</text>
    </view>

<view class="content-introduce">
        <text >{{item.introduce}}</text>
    </view>

<view class="content-author">
        < text >{{item.author}}</text>
    </view>
</view>

评分:

<text class="content-rank">{{item.rank}}</text>

</view>

</block>

基本都这里wxml就结束了,样式主要通过wxss来操作,样式比较简单,就不写了,主要讲一下左中右这三块

通过将左中右这三块的父级设置为display:flex;

左边和右边都设置为固定rpx,中间设置为flex:1。

这样写代表中间这一块的内容占满:左边和右边布局后生下来的空间 ,即左右布局好后,剩多少,flex:1就等于多少。

第一节项目代码见:demo1

https://github.com/linrunzheng/wx-samll-demo

时间: 2024-10-18 13:55:47

从零开始写个一个豆瓣电影 (小程序教程1)的相关文章

Java写的一个计算器模拟小程序

下个周六又要参加自考实践上机考试了,时间过的好快,天冷了人也变懒惰了,有时候什么也不想干,今晚刚好有时间就抽空把JAVA的试题拿出来再复习复习,看书比较困乏索性就敲敲代码吧,说实话我对JAVA不是很熟,如果不是因为考试要考,我也没时间接触它,毕竟做运维的,我更喜欢shell,PYTHON之类的.算了,还是把刚敲的代码放这里保存下,省的以后又找不到了.刚入门也就这样了. 题目: 编写一个计算器模拟程序.界面采用4行3列布局,界面设有3个文字标签(运算数1.运算数2.计算结果).3个文本框和3个加.

自己写的一个POC管理小程序

文件下载地址:https://files.cnblogs.com/files/Spec/specpoc.zip 支持对单个地址进行漏洞攻击测试,文件批量攻击测试,调用zoomeye接口测试 zoomeye接口调用参考 :pocsuite3 单个地址本地测试: 题外话:一直想用python写一款自己的漏洞管理工具,奈何水平不高,只能一边参考别人源码,一边学习,故此写出这个及其简陋的工具,也算是自己的一个框架吧,今后会不断的去完善,如果想要一款完善的POC管理工具,建议pocsuite3,花了一些时

一个python爬虫小程序

起因 深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么“装饰器”啊.“多线程”啊都没有学到. 想到廖雪峰大神的python教程很经典.很著名.就想找找有木有pdf版的下载,结果居然没找到!!CSDN有个不完整的还骗走了我一个积分!!尼玛!! 怒了,准备写个程序直接去爬廖雪峰的教程,然后再html转成电子书. 过程 过程很有趣呢,用浅薄的python知识,写python程序,去爬python教程,来学习python.想想有点小激动…… 果然python很是方便,5

今天来做一个PHP电影小爬虫。

今天来做一个PHP电影小爬虫.我们来利用simple_html_dom的采集数据实例,这是一个PHP的库,上手很容易.simple_html_dom 可以很好的帮助我们利用php解析html文档.通过这个php封装类可以很方便的解析html文档,对其中的html元素进行操作 (PHP5+以上版本)下载地址:https://github.com/samacs/simple_html_dom下面我们以 http://www.paopaotv.com 上的列表页 http://paopaotv.com

一个Java恶搞小程序

运用Java程序控制某个应用程序的运行(以网易云音乐为例),步骤如下 1.建立bat文件分别是start.bat(控制程序的运行)和kill.bat(控制程序的结束): start.bat 的内容如下,功能是运行程序: cmd /c start F:\\00网易云音乐\\CloudMusic\\cloudmusic.exe exit 具体情况可以视具体情况改写你的应用的安装路径即可 kill.bat的内容如下,功能是结束程序进程: taskkill /f /im "cloudmusic.exe&

最近背单词蛋疼,想写个桌面note的小程序方便一下,嘛嘛,那就记录一下好了,毫无优化,自娱自乐。

首先用的还是winform,因为WPF那一套忘得有点多. 第一个问题出在窗口位置挪动上,因为想用None风格的窗体,但是在onMouseMove事件中取MousePosition-e.X之后发现这个值是一定的,就是本来打算用鼠标坐标减去鼠标相对窗体坐标得到窗体相对屏幕坐标,但是在计算的时候如果把e.X取在onMouseMove事件中,那么这个e.X也是会随着鼠标移动而变化的,最终导致差不变,那就不能实现窗体移动了. 蛋疼了,最后在form类中设了两个私有变量Left,Top,在onMouseDo

基于vue2.0的一个豆瓣电影App

1.搭建项目框架 使用vue-cli 没安装的需要先安装 npm intall -g vue-cli 使用vue-cli生成项目框架 vue init webpack-simple vue-movie 然后一路回车 接着 进入项目目录 cd vue-movie 然后安装项目依赖包 cnpm install 没安装cnpm的先执行这个命令 npm install -g cnpm --registry=https://registry.npm.taobao.org 接着 npm run dev 看到

输出多行字符的一个简单JAVA小程序

1 public class JAVA 2 { 3 public static void main(String[] args) 4 { 5 System.out.println("----------------------"); 6 System.out.println("|| 我要学会 ||"); 7 System.out.println("|| JAVA语言 ||"); 8 System.out.println("-------

手把手教你构建一个音视频小程序

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯视频云终端团队发表于云+社区专栏 腾讯云提供了全套技术文档和源码来帮助您快速构建一个音视频小程序,但是再好的源码和文档也有学习成本,为了尽快的能调试起来,我们还提供了一个免费的一键部署服务:您只需轻点几下鼠标,就可以在自己的账号下获得一个音视频小程序,同时附送一台拥有独立域名的测试服务器,让您可以在 5 分钟内快速构建出自己的测试环境. 通过微信公众平台授权登录腾讯云 打开 微信公众平台 注册并登录小程序,按如下步骤操作: 单