原文首发于微信公众号:jzman-blog,欢迎关注交流!html
微信官方团队对小程序的定义是一种全新的链接用户和服务的方式,固然微信小程序的出现更多的是巩固微信社交老大的地位,微信小程序以后诞生的支付宝小程序、快应用以及最近出现的百度智能小程序、头条小程序等,可见小程序设计出一套模板不是很难,巨头们都在抢占小程序风口,争取能在小程序的裂变效应下为自身赋能,不扯了,若是有时间仍是学习一下小程序开发吧。json
要说准备工做其实没有什么,我以为只要保持一颗要学习的心态就够了。微信官方提供了微信 Web 开发者工具,能够用来开发小程序,也能够用来调试微信公众号网页调试。小程序
微信小程序主体部分有三个文件构成,且必须放在项目的根目录,具体做用以下:微信小程序
一个完整的小程序页面应该有四种文件构成,具体做用以下:数组
下面的小程序目录结构是最基本的小程序目录结构,具体以下:bash
│ app.js
│ app.json
│
└─src
└─pages
index.js
index.wxml
复制代码
固然,实际开发中少不了样式文件。微信
组件的使用就再也不啰嗦了,直接看官方文档就能够了,这里来看一看在微信小程序中如何进行数据绑定,建立一个文本标签以下:app
<text>微信小程序初始篇...{{text}}</text>
复制代码
其中两对大括号里面的 text 所表示的就是在相应 js 文件中指定的数据,在 data 下定义 text 并给定初始值,具体以下:xss
data: {
text: '这是文本内容'
}
复制代码
此时,小程序运行时就会显示 text 对应的内容了,那么如何动态的设置 text 的值呢,使用 setData 方法来为定义的变量赋值,具体参考以下:工具
/**
* button的点击事件
*/
btnClick: function() {
console.log("button被点击了");
//修改text的值
this.setData({
text: "这是新的文本内容..."
});
},
复制代码
这样就动态更新了已定义变量的值了,很是简单有木有。
小程序目前提供的渲染标签有条件 if 和 循环 for,能够使用这两种标签完成一些界面的搭建,下面演示一些它们的使用方式:
<!-- 条件语句 -->
<!-- 若是条件为true则显示,false则不显示,注意条件外面的引号-->
<view wx:if="{{true}}">渲染标签的使用...1</view>
<view wx:else>渲染标签的使用...2</view>
<!-- 循环语句 -->
<!-- 默认item和index能够自定义,for里面必须是数组形式 -->
<view wx:for="{{list}}" wx:for-item="it" wx:for-index="ix" wx:key="{{item.id}}">
<!-- 遍历,默认索引是index,值的item -->
{{ix}}-{{it.name}}
</view>
复制代码
wx:if 标签参数为布尔值,能够借此控制一个组件的显示和隐藏,wx:for 标签参数时一个数组,能够遍历数组中的内容将其循环显示出来。
小程序定义模板主要有两种方式:
建立一个 wxml 文件以下:
<!--header.wxml-->
<text>头部...</text>
复制代码
而后再对应的页面中使用 include 关键字引入,具体参考以下:
<!-- 导入定义的模板---include -->
<include src="../template/header"/>
复制代码
建立一个 wxml 文件,使用 template 标签建立模板并制定模板名称,具体参考以下:
<!--footer.wxml-->
<template name="footer1">
底部1...{{data}}
</template>
<template name="footer2">
底部2...{{data}}
</template>
复制代码
而后在页面对应的 wxml 中使用 import 关键字导入模板,用 is 属性制定要显示的模板,这种方式能够建立多个模板,使用时指定对应的名称,具体参考以下:
<!-- 导入定义的模板---import -->
<!-- 能够定义多个模板,用is标记要实现的模板,data设置动态数据 -->
<import src="../template/footer"/>
<template is="footer1" data="{{data:'这是底部区域的内容'}}"/>
复制代码
来一张测试效果图以下:
本篇文章是学习微信小程序的第一篇,简单写个 Demo 了解一下小程序的开发模式以及一些小程序特殊语法的学习,这也算是入门小程序了。能够选择关注我的微信公众号:jzman-blog 获取最新更新,一块儿交流学习!