微信小程序基础

微信小程序基础

窗口配置
路由/路径
 "pages": [
    "pages/index/index",
    "pages/logs/index"
  ],
导航栏标题文字内容
 "navigationBarTitleText": "Demo"
导航栏背景颜色
 "navigationBarBackgroundColor": "#ffffff",
导航栏标题颜色
"navigationBarTextStyle": "black",  //仅支持black,white
窗口的背景色
"backgroundColor": "#eeeeee", 		//窗口背景颜色
底部导航
  "tabBar": {
    "list": [{  //tabber数组,最少为2个
        
      "pagePath": "pages/index/index",  //路径
      "text": "首页",				//标题
      "iconPath":"路径",			//icon
      "selectedIconPath":"路径"	//选中时的icon
    }, {
      "pagePath": "pages/logs/index",
      "text": "日志"
    }]
  },
小程序文件类型

1、index.wxml html页面

2、 index.wxss css样式

3、index.js js逻辑代码

4、 index.json 配置文件

小程序生命周期
小程序
onLaunch()   页面启动时调用
onHide() 页面隐藏
onShow() 页面显示
page

注册小程序中的一个页面。接受一个 Object 类型参数,其指定页面的初始数据、生命周期回调、事件处理函数等。

参数

data:页面初始数据

onLoad :生命周期回调—监听页面加载

onReady:生命周期回调—监听页面初次渲染完成

onShow:生命周期函数—监听页面显示

onHide:生命周期函数—监听页面隐藏

onPullDownRefresh:监听用户下拉动作

onReachButton:监听上拉触底事件

onShareAppMessage:监听右上角分享按钮

onResize:页面尺寸改变时触发

onTabItemTap:当前是tab页面时,点击tab触发

数据请求和封装
1、首先先创建base.js 用于设置baseURl
const baseURL ='https://api.it120.cc/konghailong/'

export default baseURL
2、创建一个http.js 用于封装请求方式(get、post……)
//get请求
function get(option){
    //数据未请求到,loading样式
  wx.showLoading({title:'加载中',mask:true});
   //实例化一个promise对象
  return new Promise((resolve,reject)=>{
      //微信请求
    wx.request({
      url: option.url, 
      data: option.params,
      timeout:5000,
      method:'GET',
      header: {
        'content-type': 'application/json' // 默认值
      },
      success (res) {
       resolve(res.data)
       wx.hideLoading()
      },
      fail(err){
        reject(err)
        wx.hideLoading()
      }
    })
  })
}
//post
function post(option){
  wx.showLoading({title:'加载中',mask:true});
  return new Promise((resolve,reject)=>{
    wx.request({
      url: option.url, 
      data: option.params,
      timeout:5000,
      method:'POST',
      header: {
        'content-type': 'application/json' // 默认值
      },
      success (res) {
       resolve(res.data)
       wx.hideLoading()
      },
      fail(err){
        reject(err)
        wx.hideLoading()
      }
    })
  })
}
export default {get,post}
3、创建ports.js 用统一管理路径
//导入http和base文件
import http from './http'
import base from './base'
const api={
//get请求
    getBanner:()=>{      
     return http.get({url:base+'路径'})
    },
   }
//post请求
	getList:(params)=>{
      return http.post({url:base+'路径',params:params})
    },
4、在app.js中引入ports文件,配置全局
import ports from './network/ports'

App({
  globalData: {
    userInfo: null,
  },
  ports,
})
5、对应文件应用
 onReady:async function () {
    var that=this
    //利用async、await拿取数据/也可以用 promise的.then链提取
    var banner=await getApp().ports.getBanner()
    that.setData({
      banner:banner.data
    })
路由跳转及传参
wx.switchTab

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,但不能传参

我们可以利用setStorag存本地或者app.js中的 globalData进行存储

wx.switchTab({
  url: '/index'
})
wx.reLaunch

关闭所有页面,打开到应用内的某个页面,可以传参

需要跳转的应用内页面路径 (代码包路径),路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔

wx.reLaunch({
  url: 'test?id=1'
})


// test
Page({
  onLoad (option) {
    console.log(option.query)
  }
})
wx.redirectTo

关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面,可以传参,同上

wx.redirectTo({
  url: 'test?id=1'
})
wx.navigateTo

保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面,可以传参,同上

wx.navigateTo({
  url: 'test?id=1',
  events: {
    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
    acceptDataFromOpenedPage: function(data) {
      console.log(data)
    },
    someEvent: function(data) {
      console.log(data)
    }
    ...
  },
  success: function(res) {
    // 通过eventChannel向被打开页面传送数据
    res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
  }
})
wx.navigateBack

关闭当前页面,返回上一页面或多级页面

// 此处是A页面
wx.navigateTo({
  url: 'B?id=1'
})

// 此处是B页面
wx.navigateTo({
  url: 'C?id=1'
})

// 在C页面内 navigateBack,将返回A页面
wx.navigateBack({
  delta: 2
})
路由配置

在app.json中的pages写下路由地址,会自动生成相应的文件夹和文件

{
 "pages":[
    "pages/index/index",
    ]
}
点击获取参数

在某个元素上绑定一个点击事件,并通过data-item(item可自定义)穿入参数

<view bindtap="onClick" data-item('123')>
    Click here!
</view>

在js文件中获取点击事件的参数,

 gotoDetail(e){
    var num=e.currentTarget.dataset.item
    console.log(num);
 }
本地存储的几种方式
wx.setStorage

将数据存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。除非用户主动删除或因存储空间原因被系统清理,否则数据都一直可用。单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB

wx.setStorage 的同步版本
wx.removeStorage

从本地缓存中移除指定 key

wx.removeStorageSync

wx.removeStorage 的同步版本

wx.getStorage

从本地缓存中异步获取指定 key 的内容

wx.getStorageSync

wx.getStorage 的同步版本

wx.getStorageInfo()

异步获取当前storage的相关信息

wx.getStorageInfoSync()

wx.getStorageInfo 的同步版本

wx.clearStorage

清理本地数据缓存

wx.clearStorageSync()

wx.clearStorage 的同步版本

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值