热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

[解读小程序]菜谱查询+手机号吉凶查询Demo(一)

[解读小程序]菜谱查询+手机号吉凶查询Demo(一)分析的程序来源:http:blog.csdn.nety1258429182articledetails52666290还是

[解读小程序]菜谱查询+手机号吉凶查询Demo(一)

分析的程序来源:
http://blog.csdn.net/y1258429182/article/details/52666290
还是该作者的demo, 再次感谢.
github地址: https://github.com/StudyLifeTime/Eater-APP

因为是同一个作者的demo,有部分相同或者类似的功能将不再讲解.

预览效果图

>image>
view>

image组件有三种缩放模式: scaleToFill(不保持宽高比,拉伸填满image),aspectFill(保持宽高比,只保证短边完全显示,长边会被裁剪),aspectFit(保持宽高比,图片全部显示)
这里引用了两个样式container和img_splash. 样式的定义在splash.wxss中.

.container{
flex: 1; //flex 属性用于设置弹性盒模型对象的子元素如何分配空间
}

.img_splash{
width: 100%; //基于父元素宽度的百分比宽度
height: 100%;
}

这里的弹性盒子的flex属性和Android中的weight有些类似.

所有含有flex的项加起来,假如值是y,自己flex的值是x,则宽度占总数的比例为x/y.
flex 是 flex-grow、flex-shrink、flex-basis的缩写.

这里定义的.container类选择器会和在app.wxss中定义的.container的属性组合起来共同控制元素的样式, 如果是同名的属性, 那么将会app.wxss中的将会被覆盖.

.container {
height: 100%; //占父元素的高度的比例
display: flex; //弹性盒子
flex-direction: column; //纵向
align-items: center; //居中
justify-content: space-between; //各行之间留白
padding: 200rpx 0; //上下填充200rpx,左右填充0
box-sizing: border-box; //对元素指定宽度和高度包括padding和border的指定
}

splash.js

和之前的查询手机归属地一样, 就是创建动画, 执行动画等. 只不过这里初始大小只有原图的1/4. 1000ms之后再恢复原图大小.

    var animation = wx.createAnimation( {
duration: 1000,
timingFunction: 'ease-in-out',
transformOrigin: "0% 100%",
})
animation.scale( 0.5, 0.5).opacity(1).step()
// animation.opacity( 1 ).step()
this.setData( {
animationData: animation.export(),
})
setTimeout( function() {
animation.scale(1,1).step()
this.setData( {
animationData: animation.export(),
})
}.bind( this ), 1000 )

登录页 login

登录逻辑和之前的一模一样, 不再赘述.

查吉凶页 index

index.wxml

<view class="container">
<view class="userinfo">
<text class="query_result_tips">
{{result_tips}}text>
<text class="query_result">{{query_result}}text>
<input class="ipt_phone" placeholder="请输入查询的手机号" bindinput="bindKeyInput" />
<button class="btnQueryPhone" type="primary" bindtap="btnPhone">手机号查吉凶button>
<loading hidden="{{!loading}}">loading>
view>
view>

tips提示, 查询结果result的显示都采用了数据绑定.
这里引入了一个新的组件loading加载提示. 文档-加载提示
loading和toast的用法非常类似. 只是toast可以设置duration, 而loading没有. 也是采用数据绑定的方式控制显示和隐藏.

index.js

const app = getApp()
const APIURL = "http://apicloud.mob.com/appstore/lucky/mobile/query?key=17113fceca309&mobile="

var page = {
data: {
result_tips: '',
query_result: '无心插柳柳成荫,命中须有莫须有',
inputValue: "",
loading: false,
},
//查询手机归属地的方法
btnPhone: function() {
console.log( this.data.inputValue )
//调用网络请求
app.httpClient( APIURL + this.data.inputValue, (error, data) => {
// if(!data.result.value) return
console.log( data.result.conclusion)
this.setData({loading:true})
if(data.retCode == 200) {
this.setData( {
result_tips:'查询结果为如下: ',
query_result:data.result.conclusion,
loading:false
})
}
})

},
//输入绑定的方法
bindKeyInput: function( e ) {
this.setData( {
inputValue: e.detail.value
})

},
}

Page(page)

这里要说一下(error, data) =>{ //...}这是ES6语法中的arrow function. 展开来就是

function(error,data){
//...
}

这种形式和Java8引入的lambda表示式的写法很像.
前面写到在app.js中的回调

callback(null, res.data); //成功的回调
callback(error); //失败的回调

调用的都是该方法.

(error, data) => {
// if(!data.result.value) return
this.setData({loading:true})
if(data.retCode == 200) {
this.setData( {
result_tips:'查询结果为如下: ',
query_result:data.result.conclusion,
loading:false
})
}
}

作者说这是对网络请求的优化, 我并没有觉得. 并且网络请求的loading对话框, 不应该如此控制. 当然对于小程序来说, 我还是newbie. 仅保持怀疑的态度, 努力学习.

剩下菜谱查询的部分. to be continued …


推荐阅读
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 学习笔记(34):第三阶段4.2.6:SpringCloud Config配置中心的应用与原理第三阶段4.2.6SpringCloud Config配置中心的应用与原理
    立即学习:https:edu.csdn.netcourseplay29983432482?utm_sourceblogtoedu配置中心得核心逻辑springcloudconfi ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
author-avatar
石隆雅雯79
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有