微信小程序入门示例
下面做一个非常简单的小程序(列出新闻列表,点击标题后进入详细页面)用来体会小程序的开发方式
共有两个页面,一个是列表页,一个是详细页
通过这个示例,我们可以了解:
- 视图中如何获取数据
- 如何添加页面
- 页面间如何跳转,如何参数传递
- 如何控制视图样式
主要步骤
1. 创建项目
小程序开发工具下载地址
https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=1475052055364
打开后选择 “添加项目”
如果没有appid,就点击“无AppID”,功能会受限,主要是API调用方面的,视图层的开发没什么限制
2. 准备测试数据集合
如果想从自己的服务器获取数据,需要在公众平台的小程序配置中添加自己的域名才可以
我没法设置,所以只能使用假的测试数据,在项目的根目录下新建一个数据文件
data.js
内容形式为:
module.exports = [
{
image: '...',
title: '...',
content: '...'
},
...
]
是一个JSON数组,每条的结构是:新闻图片、标题、内容
在 app.js 中引入测试数据
// app.js
var newsdata = require('data.js');
App({
globalData:{
data:newsdata
}
})
3. 列表页的逻辑代码中获取数据,视图代码中循环展示
pages/index/index.js
// 取得 app 对象
var app = getApp()
Page({
data: {
// 获取全局数据,设置到本页的数据对象
news: app.globalData.data
}
})
pages/index/index.wxml
<view class="news_item" wx:for="{{news}}">
...
{{item.title}}
...
</view>
外层的
wx:for="{{news}}"
用来遍历 news,视图代码中可以直接调用 Page 对象的 data 中设置的数据
内层代码中使用
{{item.title}}
获取本条数据中的 title 值,'item' 是默认对象,用来代表循环中的单个条目
4. 新建详细页,添加到配置文件
在 pages 目录下新建目录 detail,在其中新建3个文件 detail.js、detail.wxml、detail.wxss
└── pages
├── detail
│ ├── detail.js (页面业务逻辑代码)
│ ├── detail.wxml (页面视图代码)
│ └── detail.wxss (样式代码)
页面以目录为单位,以后需要新建页面时,就在 pages 目录下新建子目录及相关文件
新建页面后,需要告诉app,修改 app.json,添加新建的 detail 页面
{
...
"pages":[
"pages/index/index",
"pages/detail/detail"
],
...
}
注意:不要写具体的文件后缀名
5. 点击列表中的标题跳转到详细页
页面的跳转通过 navigator 组件来实现
pages/index/index.wxml
...
<navigator url="../detail/detail?index={{index}}">
<view class="title">{{item.title}}</view>
</navigator>
...
就像html中的a链接一样,指向目标页面地址,'?' 后面跟着参数,{{index}}中的‘index’是 wx:for 循环中的默认参数,是当前循环索引值
6. 详细页获取目标新闻的ID,从数据集合中取得此新闻的详细信息,视图代码中展示出来
pages/detail/detail.js
var app = getApp() //取得 app 对象
Page({
onLoad: function (options){
// 获取传递过来的参数
var news_index = options.index;
// 根据 index 从数据集合中取得目标数据
// 设置到 Page 对象的 data 中,供视图代码中调用
this.setData({
news : app.globalData.data[news_index]
});
}
})
setData 方法非常重要,用来设置本页面中的 data 对象
视图中展示,pages/detail/detail.wxml
<view class="title">{{news.title}}</view>
<view class="content">{{news.content}}</view>
Demo代码下载
很小的例子,适合作为入门了解,上面给出了主要部分的代码,如需完整代码,请在此下载:
- 通过addm分析io问题(r2笔记64天)
- python爬虫+R数据可视化 实例
- 梯度下降优化算法综述
- 关于oracle后台启用的schedule job(r2笔记65天)
- 数据结构和算法——二叉树
- 【专业技术】谷歌浏览器实现Javascript扩展
- 数据结构和算法——二叉排序树
- 通过shell脚本生成查询表数据的sql (r2笔记63天)
- Linux C 编程——多线程
- 数据结构和算法——Huffman树和Huffman编码
- 简单易学的机器学习算法——K-Means++算法
- 梯度下降原理及Python实现
- 海量数据迁移之通过rowid切分大表(r2笔记62天)
- 简单易学的机器学习算法——K-近邻算法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android编程设置屏幕亮度的方法
- 利用SurfaceView实现下雨与下雪动画效果详解(Kotlin语法)
- Android WebView的使用方法及与JS 相互调用
- Android标题栏上添加多个Menu按钮的实例
- Android编程解析XML文件的方法详解【基于XmlPullParser】
- 教你3分钟了解Android 简易时间轴的实现方法
- Android网络技术HttpURLConnection详解
- Ubuntu16.04下CUDA8.0和CUDA9.0共存
- Ubuntu 20.04 开启隐藏录音降噪功能(推荐)
- 解密 Linux 版本信息的方法
- ubuntu20.04连接wifi的方法(2种)
- 服务器Centos部署MySql并连接Navicat过程详解
- Android横竖屏幕切换生命周期详解
- LINUX中如何查看某个端口是否被占用的方法
- Android实现RecyclerView添加分割线的简便方法