美文网首页
微信小程序开发--从零开始(简介)

微信小程序开发--从零开始(简介)

作者: 梭子蟹_3984 | 来源:发表于2018-03-04 19:27 被阅读534次

从零开始

微信小程序中只有四种类型的文件

  • js-----------JavaScript文件
  • json---------项目配置文件,负责窗口的颜色等等
  • wxml---------类似html文件
  • wxss---------类似CSS文件

在根目录下用app来命名的这四种类型的文件,就是程序入口文件。

app.json

必须要有这个文件,如果没有这个文件,IDE就会报错,因为微信框架把这个作为配置文件入口,我们只需要创建这个文件,在里面写个大括号就行。以后我们会在这里对整个小程序的全局配置。记录了页面的组成,配置小程序的窗口、背景、配置导航条的样式,配置默认标题。

app.js

必须要有这个文件,没有也是会报错的,但是这个文件创建一下就行,什么都不用写,以后我们可以在这个文件中监听并且处理小程序的生命周期函数、声明全局变量。

app.wxss

这个文件不是必须的。一位内他只是全局的css文件的样式。

app.wxml

这个也不是必须的,而且这个指的并不是主界面,因为小程序中的主界面是靠JSON文件中的配置类决定的。

有了app.js,app.json这两个文件在运行程序的时候IDE就不会报错了,也意味着这就是最简单的微信小程序

Hello Word

创建程序实例

app.js文件管理整个程序的生命周期,所以在里面添加如下的代码:(输入App IDE会有提示)

App({
    onlaunch: function() {
        console.log('App Launch')
    },
    onShow: function() {
        console.log('App Show')
    },
    onHide: function() {
        console.log('App Hide')
    }
})

具体的API解释如下

App()

App() 函数用来注册一个小程序。接受一个Object参数,其制定小程序的生命周期函数。

object参数说明
属性 类型 描述 触发时机
onLaunch Function 生命周期函数--监听小程序的初始化 当小程序初始化完成时,会出发onLaunch(全局只触发一次)
onShow Function 生命周期函数--监听小程序的显示 当小程序启动,或从后台进入前台显示,会触发onShow
onHide Function 生命周期函数--监听小程序的隐藏 当小程序从前台进入后台会出发onHide
其他 Any 开发者可以添加任意的函数或数据到Object参数中,用this可以访问

前台、后台定义: 当用户点击左上角关闭,或者按了设备的Home键离开温馨,小程序并没有直接销毁,而是进入了后台;当再次打开微信或者进入小程序的时候,又会从后台进入前台。只有当小程序进入后台一定的时间,或者系统资源占用过高,才会被真正的销毁。

美化ActionBar

json文件负责配置ActionBar颜色,我们只需要在里面添加如下代码即可

app.json配置项列表
属性 类型 必填 描述
pages Array 设置页面路径
windows Object 设置默认页面的窗口表现
tabBar Object 设置底部tab的表现
networkTimeout Object 设置网络超时时间
debug Boolean 设置是否开启debug模式
属性 类型 默认值 描述
navigationBarBackgroundColor HexColor #000000 导航栏背景颜色,如“#000000”
navigationBarTextStyle String white 导航栏标题颜色,仅支持black/white
navigationBarTitleText String 导航栏标题文字内容

美化界面

美化界面用到的是wxml、wxss文件,为了让程序代码结构简洁我们需要在根目录下创建一个新文件夹,名字随意,这里我们叫pages,然后我们在pages文件夹里面在创文件夹,名字随意,这里我们叫index
然后我们创建index.wxml文件然后在里面写入以下代码

<view>
    <text class="window">Hello</text>
</view>

然后我们创建index.wxss文件,在文件中输入如下代码

.window{
    color: #4994fa;
}

然后我们在创建index.js文件
在文件中输入如下代码(输入Page IDE会有提示)

Page({
    data: {
        //text: "这是一个页面"
    },
    onLoad: function(options) {
        //页面初始化options为页面跳转所带来的参数
    },
    onReady: function() {
        //页面渲染完成
    },
    onShow: function() {
        //页面显示
    },
    onHide:function() {
        //页面隐藏
    },
    onUnload: function() {
        //页面关闭
    }
})

函数解释如下:

Page

Page()函数用来注册一个页面。接受一个Object参数,其制定页面的初始化数据、生命周期函数、事件处理函数等。

Object参数说明

属性 类型 描述
data Object 页面的初始数据
onLoad Function 生命周期函数--监听页面加载
onReady Function 生命周期函数--监听页面初次渲染完成
onShow Function 生命周期函数--监听页面显示
onHide Function 生命周期函数--监听页面隐藏
onUnload Function 生命周期函数--监听页面卸载
onPullDownRefeash Function 页面相关处理函数--监听页面下拉动作
其他 Any 开发者可以添加任意的函数活数据到Object参数中,用this就可以访问

配置首页

Json文件负责配置页面的路径
所以我们在里面可以加入如下代码
其中index的含义其实就是指index.js文件
这里需要说明一点pages里面的路径其实是指向js文件的
如果一个目录下没有该名称的js文件是会报错的!

"pages": [
    "pages/index/index"
]

超级Hello World

为了学习绑定,以及如何将数据在页面更新
我们来做一个超级Hwllo World,就是我点击他的时候能让文字变色!

绑定事件

我们打开index.wxml将里面的代码改成下面这样

<view>
    <text catchtap="click" class="window">Hello</text>
</view>

其实也就是增加了

  • catchtap='click'

这两个属性是什么意思呢?慢慢来解释

类型 触发条件
touchstart 手指触摸
touchmove 手指触摸后移动
touchcancel 手指触摸动作被打断,如来电提醒,弹窗
touchend 手指触摸动作结束
tap 手指触摸后离开
longtap 手指触摸后,查过350ms在离开

注:除上表之外的其他组件自定义事件都是非冒泡事件,如<form/>的submit事件,<input/>的input事件,<scroll-view/>的scroll事件。

事件绑定

事件绑定的写法同组件的属性,以key, value的形式。

  • key以bind或catch开头, 然后跟上事件的类型,如bindtap, catchouchstart
  • value是一个字符串,需要在对应的Page中定义同名的函数。不然当初发事件的时候会报错。

bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。

上面展示了事件的一些的属性名称,这里需要注意黄色标准的内容,区分冒泡事件和非冒泡事件,其实冒泡事件就是需要往上面一层容器传递这个事件。

看了这段代码我们再来理解catchtap="click"的含义
catch代表非冒泡事件,tap代表点击事件,所以连在一起就是非冒泡点击事件,后面的click只是一个变量的名字,我们在index.js需要用这个名字绑定接受事件的函数。
我们在index.js文件中添加如下函数

click: function() {
    console.log("点击了文字");
}

添加完成之后index.js中的文件就是如下这样

Page({
    data: {
        //text: "这是一个页面"
    },
    click: function() {
        console.log("点击了文字")
    },
    onLoad: function(options) {
        //页面初始化options为页面跳转所带来的参数
        console.log("Page OnLoad")
    },
    onReady: function() {
        //页面显示
        console.log(“Page onReady”);
    },
    onShow: function() {
        //页面显示
        console.log(“Page onShoe”)
    },
    onHide: function() {
        //页面隐藏
        console.log("Page onHide")
    },
    onUnload: function() {
        //页面关闭
        console.log("Page onUnload")
    }
})

所以点击事件的回掉函数就是catchtap="click"中的click后面加上:function()构成的,
当我们点击文字时控制台中打印出了log。

接下来我们来写一下点击变色的逻辑,但是如何让文字变色的呢,肯定是css,所以我们需要在index.wxss中添加一个样式。

.window-red{
    color:#D23933;
}

此时index.wxss中的代码为:

.window{
    color: #49bb16;
}
.window-red{
    color:#D23933;
}

然后我们进入index.js文件,你会发现在代码里面有一个data:{}他不是page生命周期函数,其实他是一个变量的数组,这个里面申请的变量都可以在wxml中使用。

data: {
    //text: "这是一个页面"
}

我们在这里申请了一个color

data: {
    //text: "这是一个页面"
    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"
    }
    this.setData({
        color
    });

}

其实就是在点击后更换color变量的值,而更换的这个值其实就是样式的名称

更新界面数据

这里有一个问题,就是我们在更换完值,但是在wxml中不会立即生效,所以我们需要调用this.setData()方法将值同步给wxml让他立即生效

最后补充一点index目录下也是可以配置json文件的,也就是每个页面都可以配置自己独特的actionbar颜色等等,这里的配置会覆盖app.json文件的配置。

相关文章

网友评论

      本文标题:微信小程序开发--从零开始(简介)

      本文链接:https://www.haomeiwen.com/subject/kpiffftx.html