随着技术的发展着 2 年微信小程序犹如一匹黑马迅速崛起,新的技术出现,我们为了不与时代脱轨学习小程序很有必要!
开始学习
准备工作
- IDE 搭建
- 知识准备
从零开始
- app.js
- app.json
- app.wxml
- app.wxss
Hello World
- 创建程序实例
- 美化 ActionBar
- 美化页面
- 配置首页
超级 Hello World
- 事件绑定函数
- 更新界面数据
准备工作
IDE 搭建
就不多说了,没有内测码去下载个破解版吧,我用了一下,学习完全够了!IDE 破解版 + 安装教程
知识准备
JavaScrip 还是要看看的,推荐教程 廖雪峰大神的博客
HTML+CSS 大概知道是干啥的就行
从零开始
微信小程序中就四种类型的文件
- js ---------- JavaScrip 文件
- json -------- 项目配置文件,负责窗口颜色等等
- wxml ------- 类似 HTML 文件
- wxss ------- 类似 CSS 文件
在根目录下用 app 来命名的这四中类型的文件,就是程序入口文件
app.json
必须要有这个文件,如果没有这个文件,IDE 会报错,因为微信框架把这个作为配置文件入口,
你只需创建这个文件,里面写个大括号就行
以后我们会在这里对整个小程序的全局配置。记录了页面组成,配置小程序的窗口 背景色,配置导航条样式,配置默认标题。
app.js
必须要有这个文件,没有也是会报错!但是这个文件创建一下就行 什么都不需要写
以后我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。
app.wxss
这个文件不是必须的。因为它只是个全局 CSS 样式文件
app.wxml
这个也不是必须的,而且这个并不是指主界面哦~因为小程序的主页面是靠在 JSON 文件中配置来决定的
有了这两个文件你运行程序,IDE 就不会报错了,也意味着这是最简单的微信小程序
Hello World
创建程序实例
app.js 文件管理整个程序的生命周期,所以在里面添加如下代码:(输入 App IDE 会有提示)
App({
onLaunch: function () {
console.log('App Launch')
},
onShow: function () {
console.log('App Show')
},
onHide: function () {
console.log('App Hide')
}
})
具体 API 解释如下:
美化 ActionBar
json 文件负责配置 ActionBar 颜色,我们只需要在里面添加如下代码即可,下图有参数说明!
{
"window":{
"navigationBarBackgroundColor": "#BBDEF8",
"navigationBarTitleText": "Demo",
"navigationBarTextStyle":"white"
}
}
现在看 ActionBar 是不是像那么回事了!好接下来我们继续写我们第一个界面
美化页面
美化页面我没用到了 wxml 和 wxssw 文件
为了程序代码结构简洁
我们需要在根目录下创建一个新文件夹 名字随意, 我们这里叫 pages
然后在 pages 文件夹里面再创建新文件夹 名字随意, 这里我没叫 index
然后我们创建 index.wxml 文件然后在里面写入以下代码:
<view>
<text class="window">Hello</text>
</view>
然后创建 index.wxss 文件然后在里面写下以下代码
.window{
color:#4995fa;
}
然后我们创建 index.js
在文件中输入如下代码(输入 Page IDE 会有提示)
Page({
data:{
// text:"这是一个页面"
},
onLoad:function(options){
// 页面初始化 options为页面跳转所带来的参数
},
onReady:function(){
// 页面渲染完成
},
onShow:function(){
// 页面显示
},
onHide:function(){
// 页面隐藏
},
onUnload:function(){
// 页面关闭
}
})
函数解释如下:
配置首页
Json 文件负责配置页面路径所以我们在里面加入如下代码 其中 index 的含义 其实就是指 index.js 文件这里需要说明一点 pages 里面的路径其实是指向 js 文件的 如果一个目录下没有该名称的 js 文件是会报错的!
"pages":[ "pages/index/index"],
完成了!我们来运行程序!
超级 Hello World
为了学习事件绑定,以及如何将数据在页面上更新我们来做个超级 Hello World,就是我点击文字,能让它变色!
绑定事件
我们打开 index.wxml 将里面代码改成这样
<view> <text catchtap="click" class="window">Hello</text></view>
其实也就是加了:
catchtap="click"//bindtap='click'
这两个属性是什么意思呢 别着急 我会一一解释
上图展示了事件的一些的属性名称,这里需要注意红框标注起来的内容,区分出冒泡事件和非冒泡事件,其实冒泡事件就是需要往上面一层容器传递这个事件
看了这图 我们再来看 catchtap="click" 的含义 catch 代表非冒泡事件 tap 代表点击事件所以连在一起就是非冒泡点击事件那后面那个 click 是啥 click 其实只是个变量名字我们在 index.js 需要用这个名字绑定接收事件的函数我们打开 index.js 然后添加如下函数
click:function(){ console.log("点击了文字"); }
,添加完后代码长这样 红框中就是 添加的这个代码
所以其实点击事件的回调函数 就是 catchtap="click" 中的 click 后面加上 :function() 构成的现在我们来运行程序试试 然后点击文字
看是不是调用了 click:function 并打印 点击了文字
好接下来我们写点击一下变色的逻辑那如何让一个文字变色呢,当然是 css 所以我们需要再 index.wxss 中添加一个样式
.window-red{ color:#D23933;}
.window{color:#49bb16;}
.window-red{color:#D23933;}
然后我们进入 index.js 文件你会发现代码里面有个 data:{} 它不是 page 生命周期函数其实他是个变量的数组,这个里面申请的变量都可以在 wxml 中使用
data:{
color:"window"
}
color 的值就是 index.wxss 中的样式名称然后进入 index.wxml 中,将 class 中的值改成 {{color}}
<view>
<text catchtap='click' class="{{color}}">Hello</text>
</view>
其实意思就是 将 js 文件中变量 color 的值在这里使用也就是值等于 window 然后我们再回到 index.js 文件在最上面申请一个变量控制点击然后在 click:function() 函数中添加如下代码:
click:function(){
console.log("点击了文字");
if(flag){
color = "window-red"; flag = false;
}
else{
color = "window"; flag = true;
}
this.setData({ color });
},
完后的代码如图:
其实就是在点击是后 更换 color 变量的值 而更换的这个值其实就是样式的名称
更新界面数据
这里有个问题 我们更换完值 但是在 wxml 中不会立即生效所以我们需要调用 this.setData()方法将值同步给 wxml 让它立即生效
好了我们运行程序 点击 Hello 看看是不是点一下 变一下颜色!
最后再补充一点 index 目录下也是可以配置 json 文件的也就是每个页面都可以配置自己独特的 actionbar 颜色等等这里的配置会覆盖 app.json 文件的配置
lee.js.org 转载
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于