微信小程序简单实战V2EX
2018-01-01 21:50
162 查看
这是我参考了一些网上的代码写的一个小程序。什么都不说了,直接贴代码。最下面有百度云链接。
编写样式的wxss和wxml就直接掠过。我主要说一下js的部分。首先是utils,这里一般存放调用的方法。
写程序的时候多使用打印,看看数据的传输更有利于程序的编写。
链接:https://pan.baidu.com/s/1pLFXgPP 密码:mzmz
编写样式的wxss和wxml就直接掠过。我主要说一下js的部分。首先是utils,这里一般存放调用的方法。
//util.js:这是一个自己写的request方法,不是系统的,可以进行带参数的方法请求,绑定key值 function request(url, cacheKey, success, failure) { wx.request({ url: url, success: function (res) { if (res.statusCode == 200) { wx.setStorage({//保存得到的数据 key: cacheKey + 'Datas', data: res.data, }) success(res.data);//成功的方法 } else { failure("请求失败");//失败的方法 } }, fail: function () { failure("请求失败"); } }) } module.exports = {//接口外露可以被使用 request: request, }
//index.js 调用util var httpRequest = require("../../utils/util.js"); var app = getApp() Page({ data: { datas: [], }, onLoad: function (options) { wx.showToast({ title: '加载中', icon: 'loading', duration: 1000 }) this.request();//写一个request方法 }, request: function () { var that = this; httpRequest.request('https://www.v2ex.com/api/topics/hot.json', "index", function (data) {//util方法的request共四个参数,url,key,两个function。 console.log("request success data", data); that.setData({ datas: data, }) }, function (reason) { console.log("failure reason:", reason); }) }, intentToDetail: function (event) {//页面跳转 console.log("intentToDetail event:", event); var topicId = event.currentTarget.id; wx.navigateTo({ url: '../detail/detail?id=' + topicId, }) }, intentNode: function (event) { console.log("intentNode event:", event); var nodeId = event.currentTarget.id; var nodeName = event.currentTarget.dataset.value; console.log("nodeName=" + nodeName); wx.navigateTo({ url: '../node_detail/node_detail?nodeId=' + nodeId + "&nodeName=" + nodeName, }) }, intentMember: function (event) { console.log("intentMember event:", event); var userName = event.currentTarget.dataset.name; wx.navigateTo({ url: '../member/member?userName=' + userName, }) } })
//latest.js 和上面的基本一致 var httpRequest = require("../../utils/util.js"); var app = getApp(); Page({ data: { datas: [] }, onLoad: function (options) { wx.showToast({ title: '加载中', icon: 'loading', duration: 1000 }) this.request(); }, request: function () { var that = this; httpRequest.request("https://www.v2ex.com/api/topics/latest.json", "latest", function (data) { console.log("datas:", data); that.setData({ datas: data, }) }, function (reason) { console.log(reason); }) }, intentToDetail: function (event) { console.log("intentToDetail event:", event); var topicId = event.currentTarget.id; wx.navigateTo({ url: '../detail/detail?id=' + topicId, }) }, intentNode: function (event) { console.log("intentNode event:", event); var nodeId = event.currentTarget.id; var nodeName = event.currentTarget.dataset.value; console.log("nodeName=" + nodeName); wx.navigateTo({ url: '../node_detail/node_detail?nodeId=' + nodeId + "&nodeName=" + nodeName, }) }, intentMember: function (event) { console.log("intentMember event:", event); var userName = event.currentTarget.dataset.name; wx.navigateTo({ url: '../member/member?userName=' + userName, }) } })
//detail.js var httpRequest = require("../../utils/util.js"); Page({ data: { datas: [], replies: [], }, onLoad: function (options) { wx.setNavigationBarTitle({ title: '详情', }) wx.showToast({ title: '加载中', icon: 'loading', duration: 1000 }) console.log("options.id:", options.id); var topicId = options.id; this.getTopics(topicId); this.getReplies(topicId); }, getTopics: function (topicId) { var that = this; httpRequest.request("https://www.v2ex.com/api/topics/show.json?id=" + topicId, topicId + "Topics", function (data) { console.log("getTopics data:", data); that.setData({ datas: data[0] }) }, function (reason) { console.log("fail getTopics reason:", reason); }) }, getReplies: function (topicId) { var that = this; httpRequest.request("https://www.v2ex.com/api/replies/show.json?topic_id=" + topicId, topicId + "Replies", function (data) { console.log("getReplies data:", data); that.setData({ replies: data, }) }, function (reason) { console.log("fail getReplies reason:", reason); }) }, intentNode: function (event) { console.log("intentNode event:", event); var nodeId = event.currentTarget.id; var nodeName = event.currentTarget.dataset.name; wx.navigateTo({ url: '../node_detail/node_detail?nodeId=' + nodeId + "&nodeName=" + nodeName, }) }, intentMember: function (event) { console.log("intentMember event:", event); var userName = event.currentTarget.dataset.name; wx.navigateTo({ url: '../member/member?userName=' + userName, }) } })
//member.js var httpRequest = require("../../utils/util.js"); Page({ data: { membersDetail: [], }, onLoad: function (options) { wx.setNavigationBarTitle({ title: '个人话题', }) wx.showToast({ title: '加载中', icon: 'loading', duration: 1000 }) console.log("options userName:",options) if (options.userName != null && options.userName != "") { var userName = options.userName; this.getMemberInfo(userName); } }, getMemberInfo: function (userName) { var that = this; httpRequest.request("https://www.v2ex.com/api/topics/show.json?username=" + userName, userName + "Member", function (data) { console.log("getMemberInfo,data:", data); that.setData({ membersDetail: data, }) }, function (reason) { console.log("fail getMemberInfo,reason:", reason); }) }, intentToDetail: function (event) { console.log("intentToDetail event:", event); var topicId = event.currentTarget.id; wx.navigateTo({ url: '../detail/detail?id=' + topicId, }); }, })
//node_detail.js var httpRequest = require("../../utils/util.js"); Page({ data: { nodesDetail: [], }, onLoad: function (options) { wx.setNavigationBarTitle({ title: '节点详情', }) wx.showToast({ title: '加载中', icon: 'loading', duration: 1000 }) console.log("options:", options); if (options.nodeId != null && options.nodeId != "") { var nodeId = options.nodeId; this.getNodeByNodeId(nodeId); } }, getNodeByNodeId: function (nodeId) { var that = this; httpRequest.request("https://www.v2ex.com/api/topics/show.json?node_id=" + nodeId, nodeId + "NodeDetail", function (data) { console.log("getNodeByNodeId:", data); that.setData({ nodesDetail: data, }) }, function (reason) { console.log("fail getNodeByNodeId reason:", reason); }) }, intentToDetail: function (event) { console.log("intentToDetail event:", event); var topicId = event.currentTarget.id; wx.navigateTo({ url: '../detail/detail?id=' + topicId, }) }, })
写程序的时候多使用打印,看看数据的传输更有利于程序的编写。
链接:https://pan.baidu.com/s/1pLFXgPP 密码:mzmz
相关文章推荐
- 微信小程序实战之天气预报
- 微信小程序实战之 pay(支付页面)
- 微信小程序第二篇实战
- [干货教程]仿网易云课堂微信小程序开发实战经验
- 微信小程序之多文件下载的简单封装
- [置顶] 微信小程序开发—项目实战之计算器开发
- wsSearchView:一个简单方便的微信小程序搜索框页面组件
- 微信小程序电商实战-首页(上)
- EA&UML日拱一卒-微信小程序实战:位置闹铃 (1)-功能介绍
- 微信小程序 简单DEMO布局,逻辑,样式的练习
- 微信小程序 地图map详解及简单实例
- 微信小程序教学第三章第四节(含视频):小程序中级实战教程:下拉更新、分享、阅读标识
- 微信小程序开发-从基础到实战(一)
- 实战 HTTP 处理程序(HTTP Handler) (1) -- 创建一个最简单的 HTTP Handler
- 微信小程序入门到实战(三)
- nginx简单配置同时支持微信小程序https/wss协议
- 微信小程序简单实现form表单获取输入数据功能示例
- 微信小程序之自定义抽屉菜单(从下拉出)实例 —— 微信小程序实战系列(7)
- 微信小程序(应用号)开发新闻客户端的实战课程
- 微信小程序 扎金花简单实例