1、结构

  • util.js       工具类
  • app.js          全局工具函数
  • app.json      小程序配置
  • app.wxss     全局样式

2、生命周期

  • onLoad(options)         页面加载时触发,可获取路径中的参数(1)
  • onReady()                  页面渲染完成(1)
  • onShow()                   页面显示/切入前台触发(N)
  • onHide()                     页面隐藏/切入后台时触发(N)
  • onPullDownRefresh() 监听用户下拉动作,此事件需要在app.json文件中window节点中"开启全局的下拉刷新"enablePullDownRefresh":true,才能触发它
  • onReachBottom()      上拉触底事件,需要当前页内容超过一屏幕
  • onPageScroll()           滚动事件
  • onShareAppMessage() 自定义分享
  • onUnload()                 页面写在

3、wx语法

    循环 
  • wx:for="{{}}"
  • wx:key="{{}}"            可以不写 写了节约性能
  • wx:for-index="key"   不写默认 index
  • wx:for-item="val"      不写默认item
    条件判断
  • wx:if="{{}}"
  • wx:elif="{{}}"
  • wx:else

4、模块引入

    import 方法
        定义模块
<template name=''> 内容{{}} </template>
            template  可以定义多个
        使用
 <import src='../' />
<template is='name' data='{{title:"sd"}}'/>
            is      模块名称
            data    数据
    include 方法
        <include src='./'>
            template 不生效

5、设置数据 this.setData({})

6、事件

    bind    冒泡
    catch   非冒泡
    常见事件:tap touch相关
    写法:bind:tap='click'

7、事件对象

    type               类型
    timeStamp          时间
    target            属性值
    currentTarget     属性值

8、属性类型

    Boolean  Number String Array Object EventHandler(事件处理函数名)

9、共同属性

    id class style hidden(隐藏) data-*(自定义属性) bind*/catch*

10、自定义组件

    1- 新加组件(工具新加component)
    2- 需要引入组件的页面配置文件 json中定义 name path,
 {
"usingComponents": {
// 在父模板中调用的标签名 组件的路径
"com-name": "path/to/the/custom/component"
}
}
    3- 页面中调用组件
        <com-name>

11、组建通信

    父级-子集
        原理:类似于vue  自定义属性--properties接收
        父级        <com-name name='测试'>    
        子集js文件 
            properties:{ name:{
                type:String,
                optionalTypes:[String,Number]
                value:'123'
            }}  
    子集-父级
        原理:类似于vue     自定义事件并(triggerEvent)传递---evt.detail
            子集:  
                <view data-name='son' bind:Tap='sonClick'></view>
                    sonClick(evt){
                        let name=evt.target.dataset.name
                        this.triggerEvent('getName',{name},false)
                    }
            父级:
                <com-name bind:getName='click'/>
                  click(evt){
                      let name=evt.detail
                  }  

12、wxs模块

    写法与js类似,不知此ES6
    tools.wxs
 function mysub(str,len){
return ...
}
module.exports={
mysub:mysub
}
    引入与使用
 <wxs src='../../tools.wxs' module='tools'/>
<view>tools.mysub('hfghaf')</view>

13、网络请求

    1-设置请求超时时间
        app.json
 "networkTimeout":{
"request":10000
}
    2-请求
        http.js
  const http = ({url,data={},method='Get',header={}})=>{
wx.showLoading({
title:'加载中'
})
return new Promise((resolve,reject)=>{
wx.request({
url,
method,
success:res=>{
resolve(res)
},
fail:()=>{
reject('fail')
},
complete:()=>{
wx.hideLoading()
}
})
})
}
    3-配置请求地址
        config uri.js
  const host = 'http://localhost/api/v1'
export default {
new:'${host}/news'
}
    4-请求模型
  models newsModels.js
            import http from '../utils/http'
import config from '../config/uri'
// 获取新闻列表
export const getNew=(page=1)=>{
return http({
url:config.news
})
}
    5-调用
      import {getNews} from '../../models/newsModel'
getNews().then(res=>{
this.setData({
news:res.data
})
})
14、缓存
    没有过期时间,单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
        class Cache {
/*
1、设置缓存
单位毫秒
*/
set(key, value, expire = 36000) {
expire = Date.now() + expire * 1000
//原有的数据改成对象,加上缓存时间
let data = { expire, value }
wx.setStorage({
key,
data, });
}
/*
2、获取缓存
*/
get(key) {
if (this.has(key)) {
return ''
}
return wx.getStorage(key).value
}
/*
3、清理缓存
*/
remove(key) {
wx.removeStorage({
key: key
});
}
}
            
        

微信小程序开发基础详解的更多相关文章

  1. 微信小程序开发之详解生命周期方法

    生命周期是指一个小程序从创建到销毁的一系列过程 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面 先来看一张小程序项目结构 从上图可以看出,根目录下面有包含了app.js ...

  2. 微信小程序开发基础

    前言: 微信小程序开入入门,如果你有html+css+javascript的基础,那么你就很快地上手掌握的.下面提供微信小程序官方地址:https://developers.weixin.qq.com ...

  3. 微信小程序开发基础知识总结

    微信小程序在无论在功能.文档及相关支持方面,都是优于前面几种微信账号类型,它提供了很多原生程序才有的接口,使得我们的小程序在很多方面突破H5页面应用的限制,更加接近原生程序的功能,因此微信小程序具有很 ...

  4. 微信小程序的配置详解

    1.配置详解: 使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. 1>pages 接受一个数组,每一项都是字符串,来指定小 ...

  5. 微信小程序开发者工具详解

    一.微信小程序web开发工具下载地址 1.1 在微信公众平台-小程序里边去下载开发工具下载地址. 1.2 下载后安装一下就可以使用了: 二.创建项目 2.1 微信小程序web开发工具需要扫码登陆,所以 ...

  6. 微信小程序wxss样式详解

    一.wxml 界面结构wxmL比较容易理解,主要是由八大类基础组件构成: 一.视图容器(View Container): 二.基础内容(Basic Content) 组件名 说明 组件名 说明 vie ...

  7. 微信小程序 Mustache语法详解

    最近微信小程序非常火,对于前端开发的程序员是个利好的消息,这里主要记录下微信小程序  Mustache语法. 小程序开发的wxml里,用到了Mustache语法.所以,非常有必要把Mustache研究 ...

  8. 微信小程序 生命周期函数详解

    微信小程序 生命周期函数 小程序中 判断当前首页是从其他页面返回,还是由入口打开 由于小程序的数据在我们退出小程序时并没有得到释放,因此再次点击开来数据依然没有变成初始化 解决方法:在小程序 data ...

  9. 微信小程序生命周期详解

    文章出处:https://blog.csdn.net/qq_29712995/article/details/79784222 在我看来小程序的生命周期虽然简单,但是他渗透了小程序开发的整个过程,对于 ...

  10. 微信小程序页面传值详解

    我们知道,在微信小程序中,从一个页面转到另一个页面,一般情况下可以通过navigate或redirect时候的url来携带参数,然后在目标页面的onLoad函数参数中获取这些url参数.例如:   / ...

随机推荐

  1. 解决IDEA中SpringBoot框架使用@Autowired注解方式注入mapper对象出现红色下划线的问题

    点击编译器左上角File,点击settings进入设置界面,找到图片中对应的位置,将红线圈住的地方改为Warning,点击右下角的Apply即可

  2. 指针进阶(函数指针)(C语言)

    目录 1. 字符指针变量 2. 数组指针变量 2.1 数组指针变量是什么? 2.2 数组指针变量怎么初始化? 3. 二维数组传参的本质 4. 函数指针变量 4.1 函数指针变量的创建 4.2 函数指针 ...

  3. 如何使用Ida Pro和Core Dump文件定位崩溃位置(Linux下无调试符号的进程专享)

    我们在嵌入式Linux开发过程中经常会遇到一个问题,就是程序崩溃后不知道具体位置.因为我们发布到生产环境的一般是没有调试符号的(使用strip或编译时加-s参数,CMake生成的编译指令中的-O3也会 ...

  4. .NET 全能高效的 CMS 内容管理系统

    前言 推荐一款强大的企业级工具 - SSCMS 内容管理系统. SSCMS 为企业级客户设计,完全开源免费,适用于商业用途且无需支付任何产品或授权费用. 本文将详细介绍 SSCMS 系统的功能.用户界 ...

  5. 使用PYNQ生成PWM波控制舵机/步进电机/机械臂

    使用PYNQ生成PWM波控制舵机/步进电机/机械臂 在开始这个工程之前,你需要PYNQ-Z2的板卡文件,约束文件,原理图作为参考,你可以在我上传的资源里下载. 当然,这个工程也适用于PYNQ-Z1,只 ...

  6. 记录java接口自动化模板优化

    项目路径说明 内容优化 优化内容 1.自动生成的测试报告集成至项目中,可直接通过项目访问测试报告(之前生成测试报告位于项目外,需要手动打开) 优化效果: 2.后续会增加allure测试报告集成使用(实 ...

  7. 初识cuda一文通

    cuda学习博客 本文为本人cuda学习过程中的记录和理解,多参考@谭升等大佬前辈的博客,以及NVIDIA官方文档.如有错误烦请指正,如有侵权请联系删除. 0. 并行计算与计算机架构 计算机架构是并行 ...

  8. after_request 可以直接用于接口日志

  9. echarts中label上下两行展示

    如上图展示 series: [ //系列列表 { name: '设备状态', //系列名称 type: 'pie', //类型 pie表示饼图 radius: ['50%', '70%'], //饼图 ...

  10. elementUI中的级联选择器,默认赋值不起作用

    今天遇到再使用element的级联选择器功能的时候,是多选,默认赋值不起作用. 后来查到是因为少了multiple属性,但是multiple属性要放在props绑定的对象中,而不是直接放在标签上 &l ...