关于小程序胡言乱语

image标签

  • 有默认宽高 320 × 240
  • mode属性决定图片的显示方式和宽高适配
    * scaleToFill:默认;不缩放直接拉伸至满image元素
    * aspectFit:保持纵横比,确保长边被显示,常用于于轮播图
    * widthFix:保持纵横比,高度根据宽度等比例拉伸,用于平常页面
  • lazi-load属性决定图片是否懒加载,默认false

swiper与swiper-item标签

  • swiper:轮播外层容器组件,必须与swiper-item配合使用
  • swiper-item:轮播项,普通的块级元素
  • swiper存在默认样式:
    * 默认宽高:100% × 150px
    * 内部图片也存在默认宽度和高度 320 × 240
    * swiper高度无法实现由内部撑开
    * 解决办法:先找到原图的宽度和高度,等比例给swiper定宽高

找到原图的宽和高,然后得出比值 swiperW / swiperH = 原图w / 原图h
swiperH = 100vw(100%swiperW ) * 原图h / 原图w

swiper{width:100%;height: calc(100vw * 原图h / 原图w);}swiper swiper-item image{width:100%;}

还需要给图片添加 mode = "aspectFit"

  • 跳转标签类似a标签
  • open-type属性表示跳转方式
    1. navigation: 默认;跳转到指定页面,不跳转tabbar
    2. redirect:覆盖当前页面,不跳转tabbar
    3. switchTabbar:覆盖其他页面,跳转tabbar
    4. relauch:关闭所有页面,打开应用内的某个页面
    5. navigationBack:回退页面

自定义组件

  • 自定义组件的注册
    1. 根目录下新建components目录
    2. components目录下新建tabs目录
    3.开发者模式下右键新建component
  • 自定义组件的使用
    1. 视图目录下新建index1
    2. 在index1.json的usingComponents项新增键值对:
    3. index1.wxml引入Tabs组件
//index1.json{ "usingComponents": { "Tabs": "../../commonents/Tabs/Tabs" }}

父向子传递数据

  • 父组件向子组件传递数据通过标签属性的方式来传递
  • 子组件通过components.js里的properties接收父组件传递过来的数据
  • 子组件可以直接将其作为子组件内部的data内的数据直接使用在子组件内部
//index1.wxml<Tabs aaa="aaa123" />//tab子组件 tab.jsproperties: { //接收的组件值 aaa: { // type : 要接收的类型 type: String, // value:默认值 value: ‘‘ } }//子组件tabs内使用父组件传递来的值 tabs.wxml这是组件 接收到的父组件的数据---》{{aaa}}

[].foreach()

使用foreach遍历数组时,修改了v会导致原数组被改变

list.foreach((v,i)=>{i === v.index ? v.isActive = true : v.isActive = false})

对象的结构赋值

  • 解构对复杂类型的操作是赋值了其引用地址的操作
let tab = this.data.tablet {tab} = this.data

简单实现深拷贝

let arr = JSON.parse(JSON.stringify(this.data.arr))

生命周期

整个程序的入口文件是APP.js
单个页面的入口文件是Page.js
单个组件的入口文件是Component.js

  • 应用的声明周期
    1. onLaunch:应用被启动时触发的函数,仅执行一次
    * 页面刚被启动时就可以获取用户信息,并可以被页面使用
    2. onShow:应用被用户看到时触发的函数
    * 对应用的数据或页面效果进行重置
    3. onHide:应用被隐藏时触发的函数
    * 暂停或清除定时器
    4. onError(err):当应用的代码发生了报错的时候就会触发
    * 应用报错时,收集用户报错信息,通过异步请求,将错误的信息发送出去
    5. onPageNotFound:当页面不存在时触发函数
    * 第一次进入应用如果找不到入口页面时触发
    * 通常在这里重新定义页面的入口的入口文件
// app.js //不能跳到tabbar onPageNotFound(){ wx.navigateTo({ url: ‘‘, }) }
  • 页面的声明周期
    1. data : 页面的初始数据
    2. onload:监听页面加载时触发的函数
    * 发送异步请求来初始化页面数据
    3. onshow:页面显示时触发的函数
    *
    4. onReady:页面渲染完毕触发的函数
    5. onHide:页面被隐藏时触发的函数
    6. onPullDownRefresh:用户下拉时触发的函数
    * 通常用于用户下拉动作后对页面效果或数据进行初始化
    * 执行该函数需要page/app.json配置允许下拉 "enablePullDownRefresh": true
    7. onReachBottom:监听用户上拉触底事件,页面高度不够所以页面不能滚动,不能滚动就不能触底
    * 通常用于上拉发送请求加载下一页的操作
    8. onShareAppMessage:用户点击右上角分享时触发
    * 自定义分享按钮配置也应该在onShareAppMessage里实现
//onShareAppMessage:触发share事件时自定义界面onShareAppMessage: function () { return { title:"转发的标题", path:"以/开头,决定用户要进入的界面", imageUrl:"图片的地址,可以是本地图片,也可以是网络图片,如果没有则默认将当前页截图作为分享页图片发送出去" }}

自定义分享按钮

技术图片

 9. onPageScroll(options): 当页面滚动时触发函数 * 在小程序里页面滚动到一定距离时显示会顶按钮:[https://www.bilibili.com/video/BV1Kt411V7rg?p=65](https://www.bilibili.com/video/BV1Kt411V7rg?p=65) 10. onReSize:当页面的尺寸发生改变时触发 * 用于小程序发生横屏竖屏切换时触发

相关文章