微信小程序入门

初步认识

与前端开发比较类似,包含HTML、css、js相似的代码。但是,当然有不同之处。

原生项目结构

举例:一个最简单的示例项目,如下图:


QQ.png
QQ.png
QQ.png

项目里生成了不同类型的文件

.json 后缀的 JSON 配置文件
.wxml 后缀的 WXML 模板文件
.wxss 后缀的 WXSS 样式文件
.js 后缀的 JS 脚本逻辑文件

》》以上4种文件的作用

.json文件

1、app.json
整个小程序的全局配置,包括所有页面路径、网络超时时间、底部 tab 等。如:

{
  "pages":[        //  描述当前小程序所有页面路径。
    "pages/index/index",
    "pages/logs/logs"
  ],
// 以上说明,项目定义了两个页面,分别位于 pages/index/index 和 pages/logs/logs 目录

  "window":{     //  所有页面的顶部背景颜色,文字颜色
    "backgroundTextStyle":"light", 
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "WeChat",
    "navigationBarTextStyle":"black"
  }
}

2、project.config.json
工具的一些个性化配置,在工具上做的任何配置都会写入到这个文件,包括编辑器的颜色、代码上传时自动压缩等一系列选项。

.WXML文件

类似 HTML 的角色,用来描述当前页面的结构。文件的内容如下:

<view class="container">
  <view class="userinfo">
    <button wx:if="{{!hasUserInfo && canIUse}}"> 获取头像昵称 </button>
    <block wx:else>
      <image src="{{userInfo.avatarUrl}}" background-size="cover"></image>
      <text class="userinfo-nickname">{{userInfo.nickName}}</text>
    </block>
  </view>
</view>

有标签、属性等构成。但是也有与HTML不一样的地方。如:
1、标签名字,小程序的 WXML 用的标签是 view, button, text 等,包装好了组件的基本能力。此外还有地图、视频、音频等等组件。
2、多了一些用 wx: 开头的属性和{{ }} 表达式,目的是把渲染和逻辑分离— —不再让 JS 直接操控 DOM,JS只需管理状态即可,然后再通过一种'模板语法'来描述状态和界面结构的关系。通过{{}}这种语法,把一个变量绑定到界面上。如<text class="info">{{normalTitle}}</text>

.WXSS文件

具有 CSS 大部分的特性,并有一些扩充和修改。

新的尺寸单位 rpx
提供了全局的样式和局部样式。如app.wxss 作为全局样式,会作用于小程序的所有页面,局部页面样式 page.wxss 仅对当前页面生效。

.js文件

和用户做交互,处理用户的操作:响应用户的点击、获取用户的位置等。
如:点击 button 按钮,把界面上 msg 显示成 "Hello World",于是我们在 button 上声明一个属性: bindtap

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

在 js 文件里声明 clickMe 方法来响应点击操作:

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

此外,还可以在 js 中调用小程序丰富的 API,可以方便调起微信提供的,如获取用户信息、本地存储、微信支付等功能。https://mp.weixin.qq.com/debug/wxadoc/dev/api/

PS:多数 API 的回调都是异步,需要处理好代码逻辑

小程序项目启动

小程序启动之后,在 app.js 定义的 App 实例的 onLaunch 回调会被执行:

App({
  onLaunch: function () {        // 小程序启动之后 触发
  }
})

整个小程序只有一个 App 实例,是全部页面共享的

小程序的页面

一个页面包含上述的4种文件。客户端先根据.json 配置生成一个界面,接着装载WXML 结构、WXSS 样式,最后装载 .js文件。

/* Page 是一个页面构造器,这个构造器就生成了一个页面
Page({
  data: {    // 参与页面渲染的数据
    logs: []
  },
  onLoad: function () {       // 页面渲染后 执行

  }
})

相关资料

https://mp.weixin.qq.com/debug/wxadoc/dev/quickstart/basic/getting-started.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339

推荐阅读更多精彩内容