初步接触微信小程序开发

  • 微信小程序的开发环境

    微信小程序是运行在微信环境中的应用,它只能在微信中运行,不能运行在浏览器等其他环境中,微信团队提供了专门开发工具用于小程序的开发,还提供了API,让小程序具备与手机设备和微信交互的能力,例如获取摄像头拍照,访问文件系统等,主要提现在以下三个方面:

  获取当前登录微信用户的用户信息

  微信支付

  使用模版消息向微信发送通知消息

    开发微信需要具备一定的前端基础知识,但不是全部,wxml代替html ,wxss代替css,然后就是一些javascript的核心。

  • 开发工具的下载及API地址

    https://mp.weixin.qq.com/debug/wxadoc/introduction/index.html?t=2017510

  • 基本小程序的结构

    点击开发者工具左侧导航的“编辑”,可以看到这个项目,已经初始化并包含了一些简单的代码文件。最关键也是必不可少的,是 app.js、app.json、app.wxss 这三个。其中,.js后缀的是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件。微信小程序会读取这些文件,并生成小程序实例.

    

    下面的app.js是小程序的脚本代码。我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。调用框架提供的丰富的 API

//app.js
App({onLaunch: function () {//调用API从本地缓存中获取数据var logs = wx.getStorageSync('logs') || []logs.unshift(Date.now())wx.setStorageSync('logs', logs)},getUserInfo:function(cb){var that = this;if(this.globalData.userInfo){typeof cb == "function" && cb(this.globalData.userInfo)}else{//调用登录接口
      wx.login({success: function () {wx.getUserInfo({success: function (res) {that.globalData.userInfo = res.userInfo;typeof cb == "function" && cb(that.globalData.userInfo)}})}});}},globalData:{userInfo:null}
})

    下面的app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口背景色,配置导航条样式,配置默认标题。注意该文件不可添加任何注释。

{"pages":["pages/index/index","pages/logs/logs"],"window":{"backgroundTextStyle":"light","navigationBarBackgroundColor": "#fff","navigationBarTitleText": "WeChat","navigationBarTextStyle":"black"}
}

    下面的app.wxss 是整个小程序的公共样式表。我们可以在页面组件的 class 属性上直接使用 app.wxss 中声明的样式规则。(单独页面可以设定在页面中设定.wxss覆盖公共的.wxss)

/**app.wxss**/
.container {height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: space-between;padding: 200rpx 0;box-sizing: border-box;
}

  • 新建页面

    

    在这个demo里,有两个页面,index 页面和 logs 页面,即欢迎页和小程序启动日志的展示页,他们都在 pages 目录下。微信小程序中的每一个页面的【路径+页面名】都需要写在 app.json 的 pages 中,且 pages 中的第一个页面是小程序的首页。

    每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,如:index.js、index.wxml、index.wxss、index.json。.js后缀的文件是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件,.wxml后缀的文件是页面结构文件。

    index.wxml 是页面的结构文件:

<!--index.wxml-->
<view class="container"><view  bindtap="bindViewTap" class="userinfo"><image class="userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"></image><text class="userinfo-nickname">{{userInfo.nickName}}</text></view><view class="usermotto"><text class="user-motto">{{motto}}</text></view>
</view>

  本例中使用了<view/><image/><text/>来搭建页面结构,绑定数据和交互处理函数

  index.js 是页面的脚本文件,在这个文件中我们可以监听并处理页面的生命周期函数、获取小程序实例,声明并处理数据,响应页面交互事件等。

  

//index.js
//获取应用实例
var app = getApp()
Page({data: {motto: 'Hello World',userInfo: {}},//事件处理函数bindViewTap: function() {wx.navigateTo({url: '../logs/logs'})},onLoad: function () {console.log('onLoad')var that = this//调用应用实例的方法获取全局数据app.getUserInfo(function(userInfo){//更新数据
      that.setData({userInfo:userInfo})})}
})

  index.wxss 是页面的样式表:

/**index.wxss**/
.userinfo {display: flex;flex-direction: column;align-items: center;
}.userinfo-avatar {width: 128rpx;height: 128rpx;margin: 20rpx;border-radius: 50%;
}.userinfo-nickname {color: #aaa;
}.usermotto {margin-top: 200px;
}

  页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖 app.wxss 中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 app.wxss 中指定的样式规则。

  logs 的页面结构

<!--logs.wxml-->
<view class="container log-list"><block wx:for="{{logs}}" wx:for-item="log"><text class="log-item">{{index + 1}}. {{log}}</text></block>
</view>

  logs 页面使用 <block/> 控制标签来组织代码,在 <block/> 上使用 wx:for 绑定 logs 数据,并将 logs 数据循环展开节点。

转载于:https://www.cnblogs.com/winsker/p/6841111.html

微信小程序学习笔记-1-环境及基础结构相关推荐

  1. 微信小程序学习笔记(1)

    微信小程序学习笔记 1.小程序代码结构 2.逻辑层和视图层 3. 小程序的宿主环境(通信模型.运行机制.组件.API) 4. 数据绑定和事件绑定 1.小程序代码结构 当开发者新建一个工程时,项目文件包 ...

  2. 小程序 pagescrollto_微信小程序学习笔记(三)-- 首页及详情页开发

    一.常用组件 在上一个章节中讲解了封装请求数据的模块,在此处请求轮播图的数据 1.首页轮播图数据的请求以及渲染 1.1 轮播图数据的请求 pages/home/home.js import 2 使用组 ...

  3. 微信小程序学习笔记一 + 小程序介绍 前置知识

    微信小程序学习笔记一 1. 什么是小程序? 2017年度百度百科十大热词之一 微信小程序, 简称小程序, 英文名 Mini Program, 是一种不需要下载安装即可使用的应用 ( 张小龙对其的定义是 ...

  4. 自己的微信小程序学习笔记【3】——第三方UI库Lin-Ui的加载及使用

    其他微信小程序的学习笔记 自己的微信小程序学习笔记[1]--小程序开发工具的使用及项目文件说明 自己的微信小程序学习笔记[2]--从零开始新建项目 文章目录 其他微信小程序的学习笔记 前言 一.Lin ...

  5. 微信小程序学习笔记(一)

    干货来袭 基础前言   微信⼩程序,简称⼩程序,英⽂名 Mini Program ,是⼀种不需要下载安装即可使⽤的应⽤,它实现 了应⽤"触⼿可及"的梦想,⽤⼾扫⼀扫或搜⼀下即可打开 ...

  6. 微信小程序学习笔记(七)----简单文章推荐列表和分类图标的实现

    想要实现一个顶部是几篇纯文字的推荐文章,推荐文章下面是四个分类图标,具体实现出来是这个样子的,比较简单: 首先先来找一下素材,这几个图标是我在阿里巴巴图标库下载的,这里是下载地址: http://ww ...

  7. 微信小程序学习笔记( 小程序框架 )

    必看 这个只是我的学习过程算是日记形式吧,过程是按微信的官方文档的循序来,从 指南中的小程序框架 开始,指南中这一节之前还有页面配置,目录结构,还有很多介绍,没有写但是是非常重要的,一定要看,像指南后 ...

  8. 微信小程序-学习笔记6-组件

    基础内容组件:icon.text.progress <view class="container"><progress percent="20" ...

  9. 微信小程序学习笔记02:微信小程序注册

    文章目录 零.学习目标 一.小程序注册方法 1.注册 2.登录 二.小程序开发工具 1.下载开发工具 2.安装开发工具 3.启动开发工具 三.创建第一个小程序 1.启动开发者工具 2.新建项目 3.模 ...

最新文章

  1. mysql和hive的sql语句,hive中使用sql语句需要注意的事项
  2. BZOJ1085 [SCOI2005] 骑士精神
  3. bootstrap bable 自动换行问题
  4. 工作组服务器操作系统,工作组服务器操作系统
  5. c语言分配飞机10个座位,leetcode1227(飞机座位分配)--C语言实现
  6. Zookeeper集群安装Version3.5.1
  7. RNN神经网络- 吴恩达Andrew Ng 循环神经网络 NLP Transformers Week4 知识总结
  8. 最大,最小值问题,前K个数问题,利用mapreduce解决方案
  9. Android 内存监测工具 DDMS -- Heap
  10. html插入flash时钟,PPT怎么插入Flash时钟显示实时时间?
  11. hsqldb mysql_hsqldb简单使用总结
  12. c语言中求圆台体积公式,圆台体积公式是什么
  13. 关于OGG trail file 到999999之后的处理方法
  14. Win11 ARM64深度解析
  15. 酒店预订的 响应真的很繁杂
  16. 趣味ACM题——圣骑士的斩杀
  17. java学习之路2--简单工厂模式实现饮料自动贩卖机
  18. linux磁盘分区题目,Linux练习例题(附答案)
  19. 基于FPGA视频图像处理系统设计
  20. python之API接口调用

热门文章

  1. ios进度条Demo一个
  2. 重新拾起VS2008加入战斗
  3. 19个神经元控制自动驾驶汽车,MIT等虫脑启发新研究登Nature子刊
  4. 目标检测二十年间那些事儿——加速与优化
  5. 应用机器学习视频教程,哥伦比亚大学 2020版
  6. 谷歌Auto-DeepLab:自动搜索图像语义分割架构算法开源实现
  7. 【TensorFlow】TensorFlow从浅入深系列之六 -- 教你深入理解经典损失函数(交叉熵、均方误差)
  8. CVPR2020 | 遮挡也能识别?地平线提出用时序信息提升行人检测准确度
  9. 物体检测的过去、现在和未来
  10. R-CNN 物体检测第一弹