wx小程序(1) - 项目搭建及结构

一、创建项目

首先要有一个小程序开发者账号,可以通过官网教程去了解一下
https://mp.weixin.qq.com/debug/wxadoc/dev/index.html
然后可以在 “开发设置” 中获取到AppID
,然后打开微信web开发者工具创建项目

下面是微信web开发者工具的下载地址:
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

打开后可以看到创建项目的界面,需要建空目录供项目存放,还有就是需要上面所说的AppID


image.png

可以选择模板创建普通及插件快速启动模板,还有用nodejs和php创建有后台模板,不过需要绑定腾讯云。

一个 AppId 可以开发多个小程序,不过发布的时候只能发布一个

生成的项目结构如下:


image.png

其中 project.config.json 是整个项目的配置文件,里面包含了微信(小程序基础库)版本、appid 等信息

具体配置项可以参考 https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html

utils 文件夹用于存放一些公用脚本,pages 文件夹存放页面文件,app.js、app.json、app.wxss 构成程序主体

二、app全局配置

项目根目录下的app.json、app.js、app.wxss都是做为全局配置的存在

app.json里面有配置页面路径列表的pages、配置全局默认窗口的window、及配置底部菜单的tabBar


image.png

app.js 里面的App() 函数可以用来注册一个小程序,它可以监听app在运行时的事件,例如程序的初始化、页面的进入及跳转、触发脚本出错时的信息等等,还可以定义一些全局数据globalData,方便其余页面调用

image.png

app.wxss 就是全局的css了,里面设置的样式将会运用在所有的页面里面

想了解更多可以看看下面的文档,里面还有对以上配置的详解
https://developers.weixin.qq.com/miniprogram/dev/framework/config.html

三、页面结构

从创建的项目中我们可以看得出来,微信小程序中采用 WXML + WXSS + JS + JSON 的方式渲染页面,在pages里面每个页面都是一个单独的文件夹存放着这四种文件

1. WXML 网页模板,用于编译小程序的 html 部分*

微信小程序也采用了MVVM的形式,所以 WXML 实际写法更类似于 Vue

比如常见的用 {{ }} 绑定数据

// 基础绑定
<view> {{ message }} </view>

// 组件属性
<view id="item-{{id}}"> </view>

// 控制属性
<view wx:if="{{condition}}"> </view>

WXML 还可以实现列表渲染、自定义模板,详情可以查看文档中关于WXML的介绍

需要留意的是,小程序底层将 html 元素都封装成了组件

所以不能在 WXML 文件中直接使用 div、p、span 等标签,而是使用组件

2. WXSS 样式语言,基于CSS扩展*

可以直接写CSS样式,但是只支持部分选择器,比如 * 和 > 选择器都是不支持的

另外只有 app.wxss 中的样式是全局样式,对所有组件生效。pages 目录下的 wxss 仅对当前组件生效

WXSS 中还新增了尺寸单位 rpx,并规定屏幕宽度固定为750rpx

所以在宽度为 750px 的设计稿中,1rpx = 750/750 = 1px,

如果是宽度为 640px 的设计稿,1rpx = 750/640 = 1.17px

3. js 还需要解释么*

微信小程序中没有再对 js 进行扩展,只是在触发事件的时候,分为 bind 和 catch 两种形式

<view id="outer" bind:tap="handleTap1">
  outer view
  <view id="middle" catch:tap="handleTap2">
    middle view
    <view id="inner" bind:tap="handleTap3">
      inner view
    </view>
  </view>
</view>

二者的区别在于,bind 不会阻止冒泡事件向上冒泡,catch 可以阻止冒泡事件向上冒泡

另外,bind 和 catch 后面的冒号可以省略

4. json 页面配置文件*

app.json 是小程序的全局配置文件,包括了小程序的所有页面路径、界面表现等

详细配置信息可以查看这里:https://developers.weixin.qq.com/miniprogram/dev/framework/config.html

pages 目录下的 json 文件和 app.json 类似,但是 page.json 只对当前组件生效

四、页面配置

假如有个文件夹index
那么里面的index.json 就是用于设置小程序的状态栏、导航条、标题、窗口背景色

image.png

需要注意的是,这个json里面不能加注释,否则会文件解析错误

另外就是index.js文件
js里面的 Page(Object) 函数用来注册一个页面。接受一个 Object 类型参数,其指定页面的初始数据、生命周期函数、事件处理函数等。


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

推荐阅读更多精彩内容

  • 一:简介.json为配置文件 .wxml为模板文件,相当于HTML模板 .wxss 为样式文件,相当于HTML的...
    Reg8888阅读 12,392评论 0 1
  • 因新工作主要负责微信小程序这一块,最近的重心就移到这一块,该博客是对微信小程序整体的整理归纳以及标明一些细节点,初...
    majun00阅读 7,312评论 0 9
  • “罗浮山下四时春, 卢橘杨梅次等新。 日啖荔枝三百颗, 不辞长作岭南人。” 广东的山水景色,自有一派灵秀...
    羽悦开心阅读 573评论 0 2
  • 01 三年前,部门领导青姐找我谈话。 “你简直太圆滑了”。青姐劈头盖脸地指责起我。 当时,我心里真是惊讶坏了,从小...
    我是姜燕妮阅读 652评论 0 1
  • 说话做事,从来对事不对人。 绝大多数人的毛病是这条:本事太小,而自尊又太多。 本事太小,意味着你本身...
    T伊恩阅读 98评论 0 0