新建了一个简单项目,前面调试妥妥的顺风顺水,一路high
but,步子迈太大了。打算整一个for新建的view组件动画,整到奔溃,内心怀疑“小程序到底行不行啊!”今天为了调这个动画错过了带娃的时间,(⊙o⊙)…勉勉强强马马虎虎就这样吧,先讲新建项目,后面讲讲遇到的坑吧
首先啰嗦几句框架:小程序整体框架的显示和逻辑是分离的,框架系统分为视图层(View)和逻辑层(App Service)两部分,视图层和逻辑层的通讯必须通过数据绑定的方式实现(在逻辑层定义数据、改变数据,在显示页面中通过“{{data}}”绑定数据)。当数据涉及到需要重新渲染显示的时候,必须在逻辑层调用setData({definedData:newData})
逻辑层(js文件)———————————————————————— 视图层(wxml文件)
定义data—————————————————————————————— 绑定:{{data}}
修改data—————————》js中调用setData方法————————————》 重新渲染刷新页面显示
这里多读两遍,明白了小程序就基本跨进门里了O(∩_∩)O哈哈~
一.新建项目
打开微信开发者工具,点击"+",弹出新建小程序界面。
这里需要注意,“目录”选择的文件夹必须是空文件夹,根据多年开发的习惯,最好路径全部是英文的。(后面查看资料,据说有加载本地图片路径还有中文名的会异常,需要将路径转成英文)
二.项目文件配置
(1)先来个小程序文件入门知识科普
几乎所有页面将包括下列文件:
.wxml文件:显示文件,真正显示出来的页面文件,所有的显示层组件都会在这里
.wxss文件:看它长得跟“css”这么接近就能猜到,它是样式文件,所有css样式、css动画都会写在这里面
.json文件:看这名字长相就能知道,配数据用的,页面的配置文件。可以没有,我目前的项目就完全没有用到,项目太简单了不哈哈哈
.js文件:废话不用多说,逻辑页面,控制页面逻辑的js代码都在里面了
(2)感觉太枯燥!结合实际上图来说!

整体结构如图。
1app小程序总文件:
app.wxss:小程序总样式表,可以没有
app.json:小程序总的数据配置,必须有,如所有的页面路径就必须在这里配置
app.js:整个小程序的控制逻辑,必须有,可以在里面初始化一些动态的全局数据
2页面文件
pages目录下含有所有页面的文件夹,每一个页面一个文件夹,如图中目录index、logs各为一个页面文件夹(注意:默认index为首页)。
如果要新加页面,右键pages选择“新建Page”,工具会自动生成一个页面目录,五脏俱全,自动生成包括.js、.json、.wxss、.wxml。
所有页面“page”的路径包含在app.json的"pages"对象中,新加的页面也必须在这里增加相应的路径值对。
举个例子,我要新加一个demo页面,肿么办呢,右键pages选择“新建Page”并输入“demo”
打开“demo”目录看一下,里面妥妥的四个文件已经生成了。
现在打开app.json,哦,demo的路径已经自动给我配好了,棒的:
补充一下,如果要实现页面跳转,如从首页index跳转到新加的demo页面,在需要跳转的逻辑处(即js文件中)写上:
wx.redirectTo({
url: ‘…/demo/demo’,
})
这样 新加页面——》配置——》跳转显示 完美呈现。
3页面生命周期
这里在以后的开发中比较重要,建议多看两眼。我因为没理顺生命周期屡屡出现写完代码,what,理想与现实差太多了吧!bug虐我如初恋啊。
打开刚刚新建的demo的js页面,将会看到:


onLoad: 页面加载,小程序注册完成后,加载页面,触发onLoad方法,一个页面只会加载时调用一次。
在这里可以初始化需要动态设置的页面全局数据(比如我的项目中的图片和声音,考虑到所有页面共用,方便后期维护,根路径是设在app的globalData里的,在index页面的onLoad中初始化为页面具体的图片和声音路径);
同时做动态的事件监听,避免其他地方重复添加事件监听,会有很尴尬的后果哦。
onUnload:页面卸载,当redirectTo或navigateBack的时候调用。
onReady:页面初次渲染完成,一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。这里可以进行视图层的动态的初始化渲染工作(比如我在这里调用wx.createAudioContext创建audio对象并播放声音,这个在onLoad里是获取不到页面Audio组件对象的,因为对象还没有渲染即不为空)。
onShow: 页面显示,每次打开页面都会调用一次。
onHide:页面隐藏,当navigateTo或底部tab切换时调用。
其他的还没有用的,以后用的理解足够了再补充。
下一次讲讲导入图片和音频资源以及使用,音频踩到坑了啊。













