一.小程序代码

app.json 是当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、底部tab等。

{
"pages":[
"pages/index/index",
"pages/logs/logs"
],
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "WeChat",
"navigationBarTextStyle":"black"
}
}
  1. pages字段 —— 用于描述当前小程序所有页面路径,这是为了让微信客户端知道当前你的小程序页面定义在哪个目录。
  2. window字段 —— 定义小程序所有页面的顶部背景颜色,文字颜色定义等。

页面配置 page.json

这里的 page.json 其实用来表示 pages/logs 目录下的 logs.json 这类和小程序页面相关的配置。

如果你整个小程序的风格是蓝色调,那么你可以在 app.json 里边声明顶部颜色是蓝色即可。实际情况可能不是这样,可能你小程序里边的每个页面都有不一样的色调来区分不同功能模块,因此我们提供了 page.json,让开发者可以独立定义每个页面的一些属性,例如刚刚说的顶部颜色、是否允许下拉刷新等等。

工具配置 project.config.json

通常大家在使用一个工具的时候,都会针对各自喜好做一些个性化配置,例如界面颜色、编译配置等等,当你换了另外一台电脑重新安装工具的时候,你还要重新配置。

考虑到这点,小程序开发者工具在每个项目的根目录都会生成一个 project.config.json,你在工具上做的任何配置都会写入到这个文件,当你重新安装工具或者换电脑工作时,你只要载入同一个项目的代码包,开发者工具就自动会帮你恢复到当时你开发项目时的个性化配置,其中会包括编辑器的颜色、代码上传时自动压缩等等一系列选项。

页面构成

<!--index.wxml-->
<view class="container">
<view class="userinfo">
<button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
<block wx:else>
<image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}" mode="cover"></image>
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
</block>
</view>
<view class="usermotto">
<text class="user-motto">{{motto}}</text>
</view>
</view>

 wxml和html极其类似,xwml由标签、属性等等构成。但是有很多不一样的地方,我们一一阐述一下:

  实际上wxml最后还是会转换成html,但如果写一个良好的页面,需要众多的标签,而wxml已经封装好了

  在标签中添加了wx:else这样的属性 这种表达式,就像MVVM模式,把渲染和逻辑分开,简单的来说就是Js不操作Dom、js管理状态即可。

JS交互逻辑

一个服务仅仅只是页面展示是不够的、还需要和用户做教育、我们就可以编写JS脚本文件处理用户的操作

<view>{{ msg }}</view>
<button bindtap="clickMe">点击我</button>

点击button按钮的时候,我们希望吧msg变成Hello world

Page({
clickMe: function() {
this.setData({ msg: "Hello World" })
}
})

响应用户的操作就是这么的简单!

最新文章

  1. 10最好用的Node.js工具、插件和资料库
  2. LINUX命令批量替换文件中的字符串
  3. 学javascript必须要知道的事
  4. Segment Tree with Lazy 分类: ACM TYPE 2014-08-29 11:28 134人阅读 评论(0) 收藏
  5. CSS Devices可以让你在线直接获取使用CSS写的Mobile外形。
  6. Webform Repeater的灵活运用
  7. poj 1149 Pigs 网络流-最大流 建图的题目(明天更新)-已更新
  8. iPad和iPhone开发的比较
  9. line-height系列(二)——对行内元素(文字、图片、兄弟元素)、块级元素设置line-height后的表现
  10. 使用 sitemesh/decorator装饰器装饰jsp页面(原理及详细配置)
  11. [LeetCode] Longest Palindromic Subsequence 最长回文子序列
  12. python 内存数据库与远程服务
  13. Invoke-ASCmd 部署SSAS database
  14. mysql导出导入数据
  15. .NetCore简单学习图谱
  16. vue.js实战——vue 实时时间
  17. 关于STM32 __IO 的变量定义
  18. C# Task WaitAll和WaitAny
  19. hashCode() 和equals() 区别和作用(转)
  20. oracle跨平台数据迁移 expdp/impdp 字符集问题 导致ORA-02374 ORA-12899 ORA-02372

热门文章

  1. XYZZY spfa 最长路 判环
  2. python-关于字典与列表的一个作业
  3. Metasploit远程调用Nessus出错
  4. Spring-Docker简易指南
  5. mysql数据表增删改查
  6. String.matches()的用法
  7. KMP性质小结
  8. R语言S3类的理解与构建
  9. ES6 浏览器兼容性 和 Transpilation
  10. electron 打包后node_modules 体积过于庞大