全局配置:

1.1配置所有页面路径:在app.json的{pages:[配置所有页面]},将首页放置在第一位,在app.json必须写上所有页面的路径,要不然会报错,每个页面的wxss样式文件只在当前文件里有效
1.2设置tabBar导航:
  1. "tabBar": {
  2. "color": "#7A7E83",//字体颜色
  3. "selectedColor": "#3cc51f",//选中时候字体的颜色
  4. "borderStyle": "black",//tabbar边框的颜色,只有黑和白
  5. "backgroundColor": "#fff",//背景颜色
  6. "list": [//2-5,只能设置2-5个导航
  7. {
  8. "pagePath": "page/newPage/index",//导航页面路径,根据路径匹配tarbar导航是否显示
  9. "iconPath": "image/icon_component.png",//图标图片的路径
  10. "selectedIconPath": "image/icon_component_HL.png",//选中的时候图片的路径
  11. "text": "首页"//按钮文本
  12. },
  13. {
  14. "pagePath": "page/component/index",
  15. "iconPath": "image/icon_component.png",
  16. "selectedIconPath": "image/icon_component_HL.png",
  17. "text": "组件"
  18. }
  19. ]
  20. }

3.注册程序:app.js

设置相对应的生命周期函数(初始化完成时onLaunch,显示onShow,隐藏onHide,错误的时候onerror)
设置全局数据:globalData属性进行设置,getApp()可获取app.js的配置对象
 
4.1.导入文件方式:<import src='文件路径'/>
  1. <import src="a.wxml"/>
  2.  
  3. <写要导入的具体内容标签>
4.2.将整个文件内容导入并显示方式:<include  src='文件路径'/>
include将页面header.wxml的内容全部导入,相当于将所有内容都复制过来
  1. <include src="header.wxml"/>
  2.  
  3. const openIdUrl = require('./config').openIdUrl
5.小程序应用的生命周期启示
 
一般还会将全局的数据放置到初始化全局对象的globalData这个对像上
  1. App({
  2. onLaunch: function () {
  3. console.log('App Launch')
  4. },
  5. //小程序显示的时候(启动/后台切换到前台的时候启动)
  6. onShow: function () {
  7. console.log('App Show')
  8. },
  9. //切换至后台,切换到其他微信页面,切换到其他程序,就会调用起这个函数
  10. onHide: function () {
  11. console.log('App Hide')
  12. },
  13. globalData: {
  14. hasLogin: true,
  15. openid: null
  16. },
  17. // lazy loading openid
  18. getUserOpenId: function(callback) {
  19. var self = this
  20.  
  21. if (self.globalData.openid) {
  22. callback(null, self.globalData.openid)
  23. } else {
  24. wx.login({
  25. success: function(data) {
  26. wx.request({
  27. url: openIdUrl,
  28. data: {
  29. code: data.code
  30. },
  31. success: function(res) {
  32. console.log('拉取openid成功', res)
  33. self.globalData.openid = res.data.openid
  34. callback(null, self.globalData.openid)
  35. },
  36. fail: function(res) {
  37. console.log('拉取用户openid失败,将无法正常使用开放接口等服务', res)
  38. callback(res)
  39. }
  40. })
  41. },
  42. fail: function(err) {
  43. console.log('wx.login 接口调用失败,将无法正常使用开放接口等服务', err)
  44. callback(err)
  45. }
  46. })
  47. }
  48. }
  49. })
 
6.index.js:存储数据和方法(index.wxml视图页面元素相当于html)index.json表示当前页面的配置

  1. Page({//表示当前文件下的page全局的page对象,所有的方法和数据
  2.  
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. msg:'这是data里的数据',
  8. helloMsg: 'helloWorld',
  9. obj:{
  10. helloMsg:'欢迎词',
  11. otherText:'其他信息'
  12. },
  13.  
  14. },
  15. changeMsg:function(){
  16. this.setData({
  17. msg:'这是改变后的内容',
  18.  
  19. })
  20. },
  21. clicktap:function(e){
  22. console.log(e)
  23. },
  24.  
  25. /**
  26. * 生命周期函数--监听页面加载
  27. */
  28. onLoad: function (options) {
  29.  
  30. },
  31.  
  32. /**
  33. * 生命周期函数--监听页面初次渲染完成
  34. */
  35. onReady: function () {
  36. var appConfig = getApp()//getApp()是获取全局变量globalData方法下的数据的函数方法
  37. console.log(appConfig)
  38. if(appConfig.globalData.hasLogin){
  39. this.setData({
  40. msg:'已登陆完成'
  41. })
  42. }else{
  43. this.setData({
  44. msg:'还未登陆,请登录'
  45. })
  46. }
  47. },
  48.  
  49. /**
  50. * 生命周期函数--监听页面显示
  51. */
  52. onShow: function () {
  53. var pageList = getCurrentPages()
  54. console.log(pageList)
  55. },
  56.  
  57. /**
  58. * 生命周期函数--监听页面隐藏
  59. */
  60. onHide: function () {
  61.  
  62. },
  63.  
  64. /**
  65. * 生命周期函数--监听页面卸载
  66. */
  67. onUnload: function () {
  68.  
  69. },
  70.  
  71. /**
  72. * 页面相关事件处理函数--监听用户下拉动作
  73. */
  74. onPullDownRefresh: function () {
  75.  
  76. },
  77.  
  78. /**
  79. * 页面上拉触底事件的处理函数
  80. */
  81. onReachBottom: function () {
  82.  
  83. },
  84.  
  85. /**
  86. * 用户点击右上角分享
  87. */
  88. onShareAppMessage: function () {
  89.  
  90. },
  91. goPage(){
  92. // wx.navigateTo({
  93. // url: '/page/component/pages/button/button',
  94. // })
  95. wx.redirectTo({
  96. url: '/page/component/pages/button/button',
  97. })
  98. }
  99. })

微信小程序开发工具的基本应用的更多相关文章

  1. 微信小程序开发工具测评

    1月9日微信小程序正式上线.很多企业都希望能在这个.但是在技术开发的问题上,却不知道该如何下手.经过一些程序员不辞辛苦连夜测试,终于从十余款工具呕心沥血筛选出四款比较靠谱实用的微信小程序开发工具.接下 ...

  2. 微信小程序开发工具的数据,配置,日志等目录在哪儿? 怎么找?

    原文地址:http://www.wxapp-union.com/portal.php?mod=view&aid=359 本文由本站halfyawn原创:感谢原创者:如有疑问,请在评论内回复   ...

  3. 微信小程序开发工具使用与设计规范(二)

    [未经作者本人同意,请勿以任何形式转载] 上一篇文章主要分析了微信小程序应用场景和优劣势.本篇你可以学习到: 如何使用小程序开发工具写一个Hello World 微信小程序设计规范 微信小程序项目结构 ...

  4. 微信小程序开发工具中快捷键

    微信小程序开发工具表面上是没有更多的样式类的工具,例如缩进.隐藏代码什么的. 现在总结一下小程序开发工具常用的一些快捷键: 格式调整 Ctrl+S:保存文件Ctrl+[, Ctrl+]:代码行缩进Ct ...

  5. ubuntu系统安装微信小程序开发工具

    在ubuntu系统中安装微信小程序开发工具之前,先要安装wine与git 一.安装wine 1.如果您的系统是64位,启用32位架构(如果您还没有) sudo dpkg --add-architect ...

  6. 解决Mac版微信小程序开发工具打开后无法显示二维码

    问题描述: 正常情况下,打开微信小程序开发工具后,首页提示扫描二维码进行登陆,但是如果不显示二维码,当然无法登陆. 解决方案: 无法显示二维码肯定是程序运行哪里出错了,我们直接点击桌面图标是无法排查错 ...

  7. 微信小程序开发工具下载以及安装教程

    微信公众平台上登录你的微信小程序账号   登录进入小程序开发-工具-下载,再根据你的系统选择相对应的版本地址进行下载.   以管理员身份运行下载,点击下一步,如图所示:   下一步,就会出现许可证协议 ...

  8. 5款微信小程序开发工具使用报告,微信官方开发工具还有待提升

    微信小程序已经内测有一段时间了,笔者本着好奇加学习的心态写了几个小demo,虽然在MINA框架上并没有遇到太多的坑,但官方开发工具实在不敢恭维. api提示不全,要一个个查api啊,写代码超级慢啊 很 ...

  9. 微信小程序开发工具

    微信小程序 1● 工具下载 https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html     2● webchart_devto ...

  10. Archlinux下安装微信小程序开发工具

    由于微信小程序没有Linux版本,所以需要用wine来跑 一.安装wine sudo pacman -S wine 二.安装nwjs-sdk 微信开发工具包基于nwjs-sdk #没有wget就先安装 ...

随机推荐

  1. [hgoi#2019/2/17t1]million

    题目描述 面对格鲁的入侵,小黄人们要组建一支队伍,来抵御进攻,现在有编号为1 至n 的小黄人,任命编号为n 的队长,由其挑选队员,当然编号不是随便编的,每一个编号里都包含一个小黄人的个人信息,现在队长 ...

  2. 【转】ls 命令的 20 个实用范例

    Linux中一个基本命令是ls.没有这个命令,我们会在浏览目录条目时会遇到困难.这个命令必须被每个学习Linux的人知道. ls是什么 ls命令用于列出文件和目录.默认上,他会列出当前目录的内容.带上 ...

  3. Word Ladder - LeetCode

    目录 题目链接 注意点 解法 小结 题目链接 Word Ladder - LeetCode 注意点 每一个变化的字母都要在wordList中 解法 解法一:bfs.类似走迷宫,有26个方向(即26个字 ...

  4. Python进制表示及转换

    进制表示: 二进制:>>> abin = 0b1000>>> abin8 八进制:>>> aoct = 0o123 (数字0,字母o)>&g ...

  5. Django + Uwsgi +Nginx生产环境部署

    python manage.py runserver 0.0.0.0:80 ,一定不要用这个轻量级Server作为你的生产环境下的Server,因为它只能用于开发自测阶段.它既没有安全审计功能,而且又 ...

  6. 【LOJ#6279】数列分块3

    题目大意:维护 N 个数组成的序列,支持两种操作:区间加.区间查询某个值的前驱(小于该值的最大值,若无前驱,输出-1). 题解1:可以像分块2一样,维护每个块内元素的一个有序序列,每次查询时二分查找即 ...

  7. sort逆序(char String)

    import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class Main { ...

  8. nginx 中配置多个location并解决js/css/jpg/等的加载问题

    2017-11-09 22:07 277人阅读 评论(0) 收藏 举报  分类: linux(1)  版权声明:如有版权问题,请私信我. ECS:阿里云 系统:ubuntu 16.04 我的配置文件位 ...

  9. pyglet 绝对路径资源导入以及视频播放(二)

    今天终于搞明白怎么把绝对路径内的视频文件和音频文件导入到资源... 代码: #-*- coding:gbk -*- import pyglet import os window=pyglet.wind ...

  10. MySQL开启远程连接的方法

    默认情况下,mysql只允许本地登录,如果要开启远程连接,则需要修改/etc/mysql/my.conf文件. 一.修改/etc/mysql/my.conf找到bind-address = 127.0 ...