微信小程序开发常用语法和api

news2025/4/15 2:15:48

vue写习惯了,小程序太久不做,一些语法和api都忘记。本文总结下小程序常用的语法和api

语法

绑定事件和传参

绑定事件还有很多,触摸反馈事件,表单事件,媒体事件后续更新细说。

  <!-- 绑定事件 bindtap 事件传参 data-参数名 -->
  <view bind:tap="text"  data-info="aaa">绑定事件</view>

  text(e){
     console.log('使用bindtap绑定事件触发',e.currentTarget.dataset.info);
  }

遍历

<!-- 循环 wx:key的作用和vue中类似 都是提高渲染效率,保证列表项状态的稳定的 -->
 <view wx:for="{{demolist}}" wx:key="id">
      <view>{{item.id}}---{{item.message}}</view>
 </view>


  demolist:[
      {id:1,message:'aaa'},
      {id:2,message:'bbb'},
      {id:3,message:'ccc'},
    ]

 条件渲染

 <!-- 条件渲染 -->
 <view wx:if="{{isShow}}" style="color: red;">组件1</view>
 <view wx:else="" style="color: blue;">组件2</view>
 <button bind:tap="toggle">切换显示</button>



 isShow:true
// 切换显示
toggle(){
   this.setData({
     isShow:!this.data.isShow
   })
},

页面跳转以及传参

 接收参数在onLoad生命周期内,使用options接收。除了navigateTo外,还有reLaunch,redirectTo等也是实现页面跳转。后续更新细说它们之间的区别

<view bind:tap="toDetail">跳转detail页面</view>


  toDetail(){
     wx.navigateTo({
       url: '/pages/detail/detail?myid='+123,
     })
  },


//detail页面
 onLoad(options) {
    console.log('options',options.myid);//123
}

生命周期

  onReachBottom() {
    console.log('页面滚动到底部触发');
  },
  onReady() {
    console.log('页面加载完成触发');
  },
  onShow() {
    console.log('页面显示触发');
  },
  //注意需要在json文件中去开启 enablePullDownRefresh设置为true
  onPullDownRefresh() {
    console.log('下拉刷新时触发');
  },
  onHide() {
    console.log('页面隐藏触发');
  },
  onUnload() {
    console.log('页面销毁时触发');
  },
  onPageScroll(e) {
    console.log('页面滚动触发', e);
  },
  onResize(res) {
    console.log('窗口尺寸发生变化触发', res);
  },
  onShareAppMessage() {
    console.log('点击分享按钮触发');
  },
  onShareTimeline() {
    console.log('点击右上角“分享到朋友圈”按钮时触发');
  },
  onAddToFavorites() {
    console.log('点击右上角“收藏”按钮时触发');
  },

 配置底部导航栏

底部导航栏的配置主要在小程序的全局配置文件app.json中完成,通过tabBar来设置底部导航栏,最多五个,最少两个。属性依次为文本颜色,文本选中颜色,背景颜色,边框颜色,导航栏信息

{
  "pages": [
    "pages/home/home",
    "pages/index/index",
    "pages/logs/logs",
    "pages/detail/detail",
    "pages/mine/mine"
   
  ],  
 
  "window": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "Weixin",
    "navigationBarBackgroundColor": "#ffffff"
  },
  "tabBar": {
    "color": "#fff",
    "selectedColor": "#FF5722",
    "backgroundColor": "#22cfcf",
    "borderStyle": "black",
    "list": [
      {
        "pagePath": "pages/home/home",
        "text": "首页"
      },
      {
        "pagePath": "pages/logs/logs",
        "text": "日志"
      }
    ]
  },
  "style": "v2",
  "componentFramework": "glass-easel",
  "sitemapLocation": "sitemap.json"

}

API

提示框

<button bind:tap="tip">提示框</button>  
tip(){
    wx.showToast({
      title: '这是提示框',
      icon:"error", //success  loading  error none
      success:()=>{
        console.log('提示框触发成功');
      }
    })
  },

 加载loading

<button bind:tap="laoding">laoding</button> 
laoding(){
    wx.showLoading({
      title: '加载中',
    })
    setTimeout(() => {
      wx.hideLoading();
    },1500);
  },

确认弹框

<button bind:tap="confrim">确认框</button>

  confrim(){
   wx.showModal({
     title: '确认框',
     content: '确定要执行吗',
     complete: (res) => {
       if (res.cancel) {
          console.log("点击了取消");
       }
       if (res.confirm) {
        console.log("点击了确定");
       }
     }
   })
  },

 上传图片/视频

<button bind:tap="choseImg">上传图片/图片</button>


  choseImg(){
    wx.chooseMedia({
      count: 6, //最大上传个数
      mediaType: ['image','video'], //image只能拍摄图片或从相册选择图片  	video只能拍摄视频或从相册选择视频 mix	可同时选择图片和视频
      sourceType: ['album', 'camera'], //	album从相册选择  camera使用相机拍摄
      maxDuration: 30, //拍摄视频最长拍摄时间,单位秒。时间范围为 3s 至 60s 之间。不限制相册。
      camera: 'back', //back 使用后置摄像头  from  	使用前置摄像头
      // 成功回调
      success(res) {
        console.log(res.tempFiles[0].tempFilePath)
        console.log(res.tempFiles[0].size)
      }
    })
  }

 存储/读取本地数据

<button bind:tap="setToken">本地存储数据</button>
<button bind:tap="getToken">本地读取数据</button>

  setToken(){
    wx.setStorage({
      key: 'userInfo',
      data: {
        name: 'John',
        age: 25
      },
      success () {
        console.log('数据存储成功')
      }
    })
  },
  getToken(){
    wx.getStorage({
      key: 'userInfo',
      success (res) {
        console.log('获取到的数据', res.data)
      }
    })
  },

 发起请求

 <button bind:tap="sendReq">发起请求</button>

  sendReq(){
    wx.request({
      url: '请求地址',
      // 参数
      data: {
        key: 'value'
      },
      // 请求方式
      method: 'GET',
      success (res) {
        console.log(res.data)
      },
      fail (err) {
        console.error(err)
      }
    })
  },

下载文件

<button bind:tap="downfile">下载文件</button>


  downfile(){
    wx.downloadFile({
      url: '文件地址',
      success (res) {
        if (res.statusCode === 200) {
          // 下载成功,保存文件
          wx.saveFile({
            tempFilePath: res.tempFilePath,
            success (saveRes) {
              console.log('文件保存成功', saveRes.savedFilePath)
            }
          })
        }
      }
    })
  },

 动态设置标题

<button bind:tap="setTitle">动态设置标题</button>

 setTitle(){
    wx.setNavigationBarTitle({
      title: '新的页面标题'
    })
  },

end

后续继续补充 

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

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

相关文章

【时时三省】(C语言基础)选择结构程序综合举例

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 下面综合介绍几个包含选择结构的应用程序。 例题1&#xff1a; 写一程序&#xff0c;判断某一年是否为闰年。 程序1&#xff1a; 先画出判别闰年算法的流程图&#xff0c;见下图用变量le…

File 类 (文件|文件夹操作)

一、File 类 1.1 前言 在 JDK 中 通过 java.io.File 类&#xff0c;可以实现操作系统重文件|文件夹的创建、删除、查看、重命名等操作。 1.2 File 类构造方法 File 一共提供了四个构造方法&#xff0c;都是有参构造。其中最常使用的是 File(String) 和 File(String, String)…

Hadoop文件操作指南:深入解析文件操作

1 Hadoop文件系统概述 Hadoop分布式文件系统(HDFS)是Hadoop生态的核心存储组件&#xff0c;专为大规模数据集设计&#xff0c;具有高容错性和高吞吐量特性。 HDFS核心特性: 分布式存储&#xff1a;文件被分割成块(默认128MB)分布存储多副本机制&#xff1a;每个块默认3副本&…

STM32 HAL库之EXTI示例代码

外部中断按键控制LED灯 在main.c中 HAL_Init(); 初始化Flash&#xff0c;中断优先级以及HAL_MspInit函数&#xff0c;也就是 stm32f1xx_hal.c 中 HAL_StatusTypeDef HAL_Init(void) {/* Configure Flash prefetch */ #if (PREFETCH_ENABLE ! 0) #if defined(STM32F101x6) || …

《TCP/IP网络编程》学习笔记 | Chapter 23:IOCP

《TCP/IP网络编程》学习笔记 | Chapter 23&#xff1a;IOCP 《TCP/IP网络编程》学习笔记 | Chapter 23&#xff1a;IOCP通过重叠 I/O 理解 IOCPepoll 和 IOCP 的性能比较实现非阻塞模式的套接字以纯重叠 I/O 方式实现回声服务器端重新实现客户端测试从重叠 I/O 模型到 IOCP 模型…

CAD导入arcgis中保持面积不变的方法

1、加载CAD数据&#xff0c;选择面数据&#xff0c;如下&#xff1a; 2、加载进来后&#xff0c;右键导出数据&#xff0c;导出成面shp数据&#xff0c;如下&#xff1a; 3、选择存储路径&#xff0c;导出面后计算面积&#xff0c;如下&#xff1a; 4、与CAD中的闭合线面积核对…

rustdesk自建服务器怎么填写客户端配置信息

目录 # id、api、中继都怎么填&#xff1f;rustdesk程序启动后服务不自动启动 # id、api、中继都怎么填&#xff1f; rustdesk程序启动后服务不自动启动 完全退出RudtDesk程序&#xff08;右下角托盘区有的话&#xff0c;需要右键点退出&#xff09; 创建windows服务&#xff…

c++进阶之----智能指针

1.概念 在 C 中&#xff0c;智能指针是一种特殊的指针类型&#xff0c;它封装了裸指针&#xff08;raw pointer&#xff09;的行为&#xff0c;并通过 RAII&#xff08;Resource Acquisition Is Initialization&#xff0c;资源获取即初始化&#xff09;机制自动管理动态分配的…

六、测试分类

设计测试用例 万能公式&#xff1a;功能测试性能测试界面测试兼容性测试安全性测试易用性测试 弱网测试&#xff1a;fiddler上行速率和下行速率 安装卸载测试 在工作中&#xff1a; 1.基于需求文档来设计测试用例&#xff08;粗粒度&#xff09; 输入字段长度为6~15位 功…

AI编程案例拆解|基于机器学习XX评分系统-前端篇

文章目录 1. 定价使用DeepSeek估价小红书调研 2. 确定工作事项利用DeepSeek生成具体工作事项 3. 和客户沟通约会议沟通确定内容样式 4. 前端部分设计使用DeepSeek生成UI设计在Cursor中生成并提问前置条件开始编程 关注不迷路&#xff0c;励志拆解100个AI编程、AI智能体的落地应…

java数组06:Arrays类

Arrays类 数组的工具类java.util. Arrays 由于数组对象本身并没有什么方法可以供我们调用,但API中是了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。 查看JDK帮助文档 Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用…

TQTT_KU5P开发板教程---实现流水灯

文档实现功能介绍 本文档是学习本开发板的基础&#xff0c;通过设置计数器使led0到led7依次闪烁&#xff0c;让用户初步认识vivado基本的开发流程以及熟悉项目的创建。本开发板的所有教程所使用的软件都是vivado2024.1版本的。可以根据网上的教程下载与安装。 硬件资源 此次教程…

Model Context Protocol(MCP)模型上下文协议

Model Context Protocol&#xff08;MCP&#xff09;模型上下文协议 前言一、什么是MCP二、MCP的作用三、MCP与Function call对比四、构建一个简单的MCP DEMO环境准备实现MCP Server运行 ServerMCP Client端配置验证 总结 前言 在Agent时代&#xff0c;将Agent确立为大模型未来…

第十二章:FreeRTOS多任务创建与删除

FreeRTOS多任务创建与删除教程 概述 本教程介绍FreeRTOS多任务的创建与删除方法&#xff0c;主要涉及两个核心函数&#xff1a; 任务创建&#xff1a;xTaskCreate()任务删除&#xff1a;vTaskDelete() 实践步骤 1. 准备工程文件 复制005工程并重命名为006 2. 创建多个任务…

Seed-Thinking-v1.5:字节豆包新推理模型发布,200B参数战胜Deepseek

摘要 本文引入了Seed-Thinking-v1.5&#xff0c;能够在响应之前通过思考进行推理&#xff0c;从而提高了各种基准测试的性能。Seed-Thinking-v1.5在AIME 2024上获得86.7分&#xff0c;在Codeforces上获得55.0分&#xff0c;在GPQA上获得77.3分&#xff0c;展示了优秀的STEM和编…

AIDD-人工智能药物设计-提升分子预测反事实解释可靠性

UQ 过滤:提升分子预测反事实解释可靠性 目录 I-INF 指标结合 F1 评分,为评估大分子复合物(包括 RNA-蛋白质)的界面相互作用网络提供了可靠且全面的新方法。通过使用生成的人工 CAR 序列微调蛋白质语言模型(PLM),显著提高了 CAR-T 细胞活性的预测准确性,有效克服了合成蛋…

【前端】webpack一本通

今日更新完毕&#xff0c;不定期补充&#xff0c;建议关注收藏点赞。 目录 简介使用webpack默认只能处理js文件 ->引入加载器对JS语法降级&#xff0c;兼容低版本语法合并文件再次打包进阶 工作原理html-webpack-plugin插件webpack开发服务器引入使用webpack-dev-server模块…

代码学习总结(一)

代码学习总结&#xff08;一&#xff09; 这个系列的博客是记录下自己学习代码的历程&#xff0c;有来自平台上的&#xff0c;有来自笔试题回忆的&#xff0c;主要基于 C 语言&#xff0c;包括题目内容&#xff0c;代码实现&#xff0c;思路&#xff0c;并会注明题目难度&…

第十五届蓝桥杯C/C++B组省赛真题讲解(分享去年比赛的一些真实感受)

试题A——握手问题 一、解题思路 直接用高中学的排列组合思路 二、代码示例 #include<bits/stdc.h> using namespace std; int fun(int n) {int sum0;for(int i0;i<n;i){for(int ji1;j<n;j)sum; } return sum; } int main() {cout<<fun(50)-fun(7); }三、…

【Qt】qDebug() << “中文测试“; 乱码问题

环境 Qt Creator版本&#xff1a;4.7.1 编译器&#xff1a;MSVC2015_32bit 解法一 在.pro文件中添加 msvc:QMAKE_CXXFLAGS -execution-charset:utf-8注意&#xff1a; 1、需要清理项目&#xff0c;并重新qmake&#xff0c;然后构建。 测试项目下载&#xff1a;https://do…