微信小程序-3

一、交互

API - - - 界面 - - - 交互

功能:提示 是否删除

1.wx.showToast 显示消息提示框

<button type="primary" bindtap='clickBtn'>按钮</button>
<input style="margin: 20rpx;height: 60rpx;background: gainsboro;" type="text"/>
  clickBtn(){wx.showToast({title:'加载中...',icon:'loading',// image的优先级大于iconduration:5000,// mask 遮罩层,为true时不可操作界面,页面也不可滚动mask:true,// 弹窗出现时就会调用success:res=>{console.log(res);}})},

2.wx.showModal 显示模态对话框

  clickBtn(){wx.showModal({title:'是否删除',content:'删除之后不可恢复,请谨慎删除',// showCancel:false,// 箭头函数,不会出现指向问题success:res=>{console.log(res);// comfirm值为确认返回true和取消false}})},

content和editable不要一起使用

  clickBtn(){wx.showModal({title:'请输入验证码',editable:true,placeholderText:'请输入...',success:res=>{console.log(res);// comfirm值为true,content值为用户输入的内容}})},

3.wx.showLoading 显示 loading 提示框

  onLoad: function (options) {// 一进入页面就会显示wx.showLoading({title: '加载中...',// 加载中不可对页面进行操作mask:true,})// 定时器,1秒后隐藏loading提示框setTimeout(()=>{wx.hideLoading()},1000)},

3.wx.showActionSheet 显示操作菜单

  clickBtn(){wx.showActionSheet({itemList: this.data.listArr,success: (res)=> {// res.tapIndex得到索引,this.data.listArr是列表console.log(this.data.listArr[res.tapIndex])},fail: (res)=> {console.log(res.errMsg)}})},

二、导航栏api接口

平常在json里设置

"navigationBarTitleText":"标题"
  onLoad: function (options) {// 动态设置当前页面的标题wx.setNavigationBarTitle({title: '标题名',})// 设置页面导航条颜色wx.setNavigationBarColor({backgroundColor: '#ff0000',frontColor: '#000000',})// 在当前页面显示导航条加载动画wx.showNavigationBarLoading()setTimeout(() => {// 在当前页面隐藏导航条加载动画wx.hideNavigationBarLoading()}, 2000);// 隐藏返回首页按钮wx.hideHomeButton()},

三、json配置

指南 - - - 配置小程序
框架 - - - 小程序配置 - - - 全局配置app.json - - - 页面配置.json

注意:json文件里不能有注释

  // entryPagePath指定首页,默认index"entryPagePath": "pages/demo/demo","pages":["pages/index/index","pages/logs/logs","pages/demo/demo"],

单独页面不显示导航栏

  // 导航栏样式// custom 自定义导航栏,只保留右上角胶囊按钮"navigationStyle": "custom"

下拉刷新 背景颜色

  // 是否开启当前页面下拉刷新"enablePullDownRefresh": true,// 刷新窗口的背景色"backgroundColor": "#8bc34a",// 下拉 loading 的样式(三个点),仅支持 dark / light"backgroundTextStyle":"light"

四、tabBar

图标 iconfont 官方图标库 收藏量 ctrl+F搜索 home

  "tabBar": {// 字体颜色"color": "#cdcdcd",// 选中时的颜色"selectedColor": "#00ffff","list": [{"text": "首页","pagePath": "pages/index/index","iconPath": "/static/icon/home.png","selectedIconPath": "/static/icon/home-fill.png"},{"text": "我的","pagePath": "pages/logs/logs","iconPath": "/static/icon/user.png","selectedIconPath": "/static/icon/user-lan.png"}]},

五、api中navigate路由接口与组件的关系

组件 - - - 导航 - - - navigator

<navigator url="/pages/test/test">测试页面</navigator>
<!-- reLaunch关闭所有页面,打开到应用内的某个页面 -->
<!-- 可携带参数,在左下角页面路径那打开页面参数 id=123 -->
<navigator url="/pages/test/test?id=123" open-type="reLaunch">测试页面</navigator>
<!-- 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,没有携带参数 -->
<navigator url="/pages/test/test?id=123" open-type="switchTab">测试页面</navigator>

或盒子,使用点击事件

<view bindtap="goTest" style="width: 100rpx;height: 100rpx;background: greenyellow;"></view>
  goTest(){// wx.reLaunch 关闭所有页面,打开到应用内的某个页面wx.reLaunch({url: '/pages/test/test',})},

wx.switchTab - - - 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
wx.redirectTo - - - 关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面
wx.navigateTo - - - 保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层
wx.navigateBack - - - 关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈,决定需要返回几层

六、request请求

1.获取网络请求

<view class="out"><view class="box" wx:for="{{listArr}}" wx:key="id"><view class="pic"><image src="{{item.url}}" mode="aspectFit"/></view><view class="name">姓名:{{item.id}}</view></view>
</view>
.out{padding: 30rpx;}
.out .box{width: 100%;height: 460rpx;border: 1px solid #eee;margin-bottom: 30rpx;}
.out .box .pic{width: 100%;height: 400rpx;}
.out .box .pic image{width: 100%;height: 100%;}
.out .box .name{text-align: center;line-height: 60rpx;}
  data: {listArr:[]},onLoad(options) {this.getData();},// 随机获取猫咪的网络请求getData(){// console.log(123)wx.request({// 可以改limit后的数字url: 'https://api.thecatapi.com/v1/images/search?limit=2',// 需要再详情-本地设置-开启不校验合法域名success:res=>{console.log(res)this.setData({listArr:res.data})}})},

2.下拉刷新数据

{"usingComponents": {},"enablePullDownRefresh": true,"backgroundColor": "#000","backgroundTextStyle":"light"
}
  data: {listArr:[]},onLoad(options) {wx.showLoading({title: '加载中...',mask:true})this.getData();},getData(){// console.log(123)wx.request({url: 'https://api.thecatapi.com/v1/images/search?limit=2',// 需要再详情-本地设置-开启不校验合法域名success:res=>{console.log(res)this.setData({listArr:res.data})// 在页面刷新完后 停止页面下拉刷新// API --- 界面 --- 下拉刷新wx.stopPullDownRefresh()// wx.hideLoading()},// 接口调用结束的回调函数(调用成功、失败都会执行)complete:err=>{wx.hideLoading()}})},onPullDownRefresh() {// console.log(123)// 先清空数组this.setData({listArr:[]})// 下拉刷新,重新获取数据this.getData()},

3.触底加载更多数据

onReachBottomDistance 触底距离

{"usingComponents": {},"enablePullDownRefresh": true,"backgroundColor": "#000","backgroundTextStyle":"light","onReachBottomDistance": 200
}
// pages/test/test.js
Page({/*** 页面的初始数据*/data: {listArr:[]},onLoad(options) {wx.showLoading({title: '加载中...',mask:true})this.getData();},getData(){// console.log(123)wx.request({url: 'https://api.thecatapi.com/v1/images/search?limit=2',// 需要再详情-本地设置-开启不校验合法域名success:res=>{console.log(res)let oldData = this.data.listArr// let newData = res.data// 让老数据追加新数据,新数据在res.data中let newData = oldData.concat(res.data)this.setData({listArr:newData})// 在页面刷新完后 停止页面下拉刷新// API --- 界面 --- 下拉刷新wx.stopPullDownRefresh()// wx.hideLoading()},// 接口调用结束的回调函数(调用成功、失败都会执行)complete:err=>{wx.hideLoading()wx.hideNavigationBarLoading()}})},/*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函数--监听页面隐藏*/onHide() {},/*** 生命周期函数--监听页面卸载*/onUnload() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {// console.log(123)// 先清空数组this.setData({listArr:[]})// 下拉刷新,重新获取数据this.getData()},/*** 页面上拉触底事件的处理函数*/onReachBottom() {wx.showNavigationBarLoading()// need重新编译console.log('触底了');this.getData();},/*** 用户点击右上角分享*/onShareAppMessage() {}
})

4.其他参数

get请求,data传参

  onLoad: function (options) {this.getData();},getData(){wx.request({url: 'https://api.thecatapi.com/v1/images/search',method:'get',data:{limit:10},success:res=>{console.log(res)}})},

post请求

  getData(){wx.request({url: 'http://jsonplaceholder.typicode.com/posts',method:'post',// header里的参数在调试器Network下headers的RequestHeaders里可以看到header:{'content-type':'application/json','token':123123},data:{limit:10,name:'wangwu'},success:res=>{console.log(res)}})},

七、小案例

<!-- 双向绑定model, bindconfirm点击完成按钮/回车时触发 -->
<input type="text" model:value="{{iptVal}}" bindconfirm="onSubmit" placeholder="请输入标题" style="background: #eee;margin: 30rpx;"/>
<view class="box" style="margin: 30rpx;"><view class="row" wx:for="{{listArr}}" wx:key="_id" style="border-bottom: 1px solid #eee;padding: 10rpx;"><view class="title">标题:{{item.title}}</view><view class="time">时间:{{item.posttime}}</view></view>
</view>
  data: {iptVal:'',listArr:[]},onLoad: function (options) {this.getData();},getData(){wx.request({// url: 'https://console-docs.apipost.cn/preview/8b23f100b39a63c5/617499421662264b',url:'https://tea.qingnian8.com/demoArt/get',method:'POST',header:{'Content-Type':'application/json'},data:{num:3,page:1},success:res=>{console.log(res);this.setData({listArr:res.data.data})}})},onSubmit(){// console.log(this.data.iptVal);wx.request({url: 'https://tea.qingnian8.com/demoArt/add',method:'POST',header:{'Content-Type':'application/json'},data:{title:this.data.iptVal},success:res=>{console.log(res);if(res.data.errCode!=0){// 如果没有成功,返回 不执行下面代码return;}this.setData({iptVal:''})this.getData();wx.showToast({title: res.data.errMsg,})}})},

八、自定义组件Component

框架 - - - 框架接口 - - - 自定义组价
新建文件夹(和pages同级),新建文件夹,右键新建Component
在这里插入图片描述

在json中引入component组件

{"usingComponents": {"MyHeader":"/component/MyHeader/MyHeader"}
}
<!--component/MyHeader/MyHeader.wxml-->
<view class="header"><view class="big">头部大标题</view><view class="small">小标题</view>
</view>
/* component/MyHeader/MyHeader.wxss */
.header{text-align: center;padding: 30rpx;background: #eee;}
.header .big{font-size: 52rpx;}
.header .small{font-size: 32rpx;margin-top: 20rpx;color: #666;}


修改组件的内容

<!--component/MyHeader/MyHeader.wxml-->
<view class="header"><view class="big">头部大标题</view><view class="small">小标题{{name}}</view>
</view>
// component/MyHeader/MyHeader.js
Component({/*** 组件的属性列表*/properties: {name:{type:String,value:"-----"}},/*** 组件的初始数据*/data: {},/*** 组件的方法列表*/methods: {}
})

传参,若没有传参,使用默认值value:“-----”,传参使用传参值

<MyHeader name='-首页'></MyHeader>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/107725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker逃逸---SYS_PTRACE浅析

一、产生原因 用户授予了容器SYS_PTRACE权限&#xff0c;并且与宿主机共享一个进程命名空间(--pidhost)&#xff0c;使得容器内可以查看到宿主机的进程&#xff0c;攻击者可以利用进程注入&#xff0c;反弹shell&#xff0c;从而实现逃逸 二、利用条件 1、容器有SYS_PTRACE权…

23基于MATLAB的小波降噪,默认阈值消噪,强制消噪,给定软阈值消噪方法,数据直接替换后就可以跑。

基于MATLAB的小波降噪&#xff0c;默认阈值消噪&#xff0c;强制消噪&#xff0c;给定软阈值消噪方法&#xff0c;数据直接替换后就可以跑。 https://www.xiaohongshu.com/explore/652d57c600000

elasticsearch配置

Elasticsearch version: 5.1.1 Windows Java安装 版本&#xff1a;jdk8 Java Archive | Oracle 中国 安装elasticsearch-rtf Elasticsearch-RTF是针对中文的一个发行版&#xff0c;即使用最新稳定的elasticsearch版本&#xff0c;并且帮你下载测试好对应的插件&#xff0c;…

ppt怎么压缩到10m以内?分享ppt缩小方法

在日常工作中&#xff0c;我们常常需要制作和分享PowerPoint演示文稿&#xff0c;然而&#xff0c;有时候文稿中的图片、视频等元素会导致文件过大&#xff0c;无法在电子邮件或其他平台上顺利传输。为了将PPT文件压缩到10M以内&#xff0c;我们可以使用一些专门的文件压缩工具…

性能超越 Clickhouse | 物联网场景中的毫秒级查询案例

1 物联网应用场景简介 物联网&#xff08;Internet of Things&#xff0c;简称 IoT&#xff09;是指通过各种信息传感、通信和 IT 技术来实时连接、采集、监管海量的传感设备&#xff0c;从而实现对现实世界的精确感知和快速响应&#xff0c;继而实现自动化、智能化管理。在查…

2-k8s-控制器介绍

文章目录 一、控制器类型二、Deployment控制器三、SatefulSet控制器四、Daemonset控制器五、Job控制器六、CronJob 控制器 一、控制器类型 Deployment&#xff1a;适合无状态的服务部署StatefullSet&#xff1a;适合有状态的服务部署DaemonSet&#xff1a;一次部署&#xff0c…

时间复杂度为 O(n^2) 的排序算法

大家好&#xff0c;我是 方圆。对于小规模数据&#xff0c;我们可以选用时间复杂度为 O(n2) 的排序算法&#xff0c;因为时间复杂度并不代表实际代码的执行时间&#xff0c;而且它也省去了低阶、系数和常数&#xff0c;仅代表的增长趋势&#xff0c;所以在小规模数据情况下&…

python:使用卷积神经网络(CNN)进行回归预测

作者:CSDN @ _养乐多_ 本文详细记录了从Excel或者csv中读取用于训练卷积神经网络(CNN)模型的数据,包括多个自变量和1个因变量数据,以供卷积神经网络模型的训练。随后,我们将测试数据集应用于该CNN模型,进行回归预测和分析。 该代码进一步修改可用于遥感影像回归模型. …

【广州华锐互动】人体血管器官3D动态展示为医学生提供哪些便利?

人体血管器官3D动态展示是一种采用先进的计算机图形技术和立体成像技术&#xff0c;对人体内部结构和功能进行三维可视化的教学方法。这种教学方式以其独特的优势&#xff0c;正在改变传统的解剖学教学模式&#xff0c;为医学教育带来了革新。 首先&#xff0c;3D动态演示能够提…

基于nodejs+vue网课学习平台

各功能简要描述如下: 1个人信息管理:包括对学生用户、老师和管理员的信息进行录入、修改&#xff0c;以及老师信息的审核等 2在库课程查询:用于学生用户查询相关课程的功能 3在库老师查询:用于学生用户查询相关老师教学的所有课程的功能。 4在库学校查询:用于学生用户查询相关学…

解密JavaScript的异步机制:打破单线程限制,提升性能与用户体验

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 一、JavaScript的异步编步机制 二、事件循环…

剑指offer(C++)-JZ50:第一个只出现一次的字符(算法-其他)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 题目描述&#xff1a; 在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1&#xff08;需要区分…

SpringBoot面试题7:SpringBoot支持什么前端模板?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:SpringBoot支持什么前端模板? Spring Boot支持多种前端模板,其中包括以下几种常用的: Thymeleaf:Thymeleaf是一种服务器端Java模板引擎,能够…

SSM - Springboot - MyBatis-Plus 全栈体系(三十)

第七章 MyBatis-Plus MyBatis-Plus 高级用法&#xff1a;最优化持久层开发 一、MyBatis-Plus 快速入门 1. 简介 版本&#xff1a;3.5.3.1MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window) 的增强工具&#xff0c;在 MyBa…

上海亚商投顾:沪指震荡调整跌 减肥药、华为概念股持续活跃

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 沪指上个交易日低开后震荡调整&#xff0c;深成指、创业板指盘中跌超1%&#xff0c;宁德时代一度跌超3%&#xff…

面向红队的自动化引擎工具

gogo 介绍 面向红队的、高度可控的可拓展的自动化引擎。特征如下&#xff1a; 自由的端口配置 支持主动/主动指纹识别 关键信息提取&#xff0c;如标题、证书以及自定义提取信息的正则 支持nuclei poc&#xff0c;poc目录&#xff1a;https://chainreactors.github.io/wiki/…

阿里云云服务器实例使用教学

目录 云服务器免费试用 详细步骤 Xshell 远程连接 云服务器免费试用 阿里云云服务器网址&#xff1a;阿里云免费试用 - 阿里云 详细步骤 访问阿里云免费试用。单击页面右上方的登录/注册按钮&#xff0c;并根据页面提示完成账号登录&#xff08;已有阿里云账号&#xff09;…

【网络安全 --- win10系统安装】win10 系统详细安装过程(提供资源)

一&#xff0c;资源下载 百度网盘镜像下载地址链接&#xff1a; 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.ba…

(ubuntu) 安装JDK

文章目录 前言参看java版本的命令&#xff1a;安装jdk命令安装jps关闭防火墙&#xff1a;查看端口占用&#xff1a;&#xff08;坑&#xff09;ubuntu上Mysql默认标明 区分大小写 前言 提示&#xff1a;常以为人是一个容器&#xff0c;盛着快乐&#xff0c;盛着悲哀。但是人不…

使用 Tkinter Canvas 小部件添加放大镜功能?

一、说明 据我所知&#xff0c;内置的 Tkinter Canvas 类比例不会自动缩放图像。如果您无法使用自定义小部件&#xff0c;则可以缩放原始图像并在调用缩放函数时将其替换在画布上。 二、实现图像放大镜技术细节 我如何将放大和缩小添加到以下脚本中&#xff0c;我想将其绑定到…