首页 > 编程语言 >小程序开发基础(一)

小程序开发基础(一)

时间:2024-06-30 23:52:42浏览次数:1  
标签:index 微信 程序开发 基础 搜索 组件 wx 页面

今天学习下微信小程序,打算做一个界面出来来实现我的物联网功能,首先了解下微信小程序都有哪些基础组件和相应的控件。
首先需要清楚的背景知识: 每一个组件都是由 index.js index.json index.wxml index.wxss 四个文件组成,但是其中若是Canvas种类的插件还不太一样,后面会详细介绍。
KIMI指令:
(一)假设你是一名微信小程序开发专家,请分条罗列微信开发的知识框架,请逐条罗列并以表格形式输出
(二)请教授开发环境搭建的流程,按照1,2,3等步骤输出,要求步骤简明扼要,逻辑清晰且字数不超过300字,以图文并茂的方式呈现
(三)请结合一个例子来做小程序代码实现
(四)4.1微信小程序开发过程中会使用哪些UI组件
4.1.1 微信小程序开发过程中navigationbar有哪些监听事件,如何使用,请举一个例子说明
4.2组件间数据通信是用什么组件实现的

1.页面的WXML结构 (pages/index/index.wxml):
<view class="container">
  <button bindtap="onButtonTap">点击我</button>
</view>
2.页面的样式 (pages/index/index.wxss):

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
}

button {
  margin: 20px;
  padding: 10px;
  background-color: #1AAD19;
  color: white;
  border-radius: 5px;
  font-size: 16px;
}

3.页面的逻辑 (pages/index/index.js):
Page({
  onButtonTap: function(event) {
    console.log('按钮被点击了')
    // 可以在这里执行更多的操作,如调用API、跳转页面等
  }
})

然后深入问下去,学习组件模块的时候,分通信组件和UI组件,
4.1.1输出如下:

在微信小程序中,<navigationbar> 组件用于定义页面的导航栏。这个组件提供了一些监听事件,允许开发者在用户与导航栏交互时执行特定的操作。以下是一些常用的监听事件及其用法:

onSearchInput: 当用户输入搜索框时触发。
onSearchConfirm: 当用户点击搜索键盘上的“搜索”按钮时触发。
onSearchCancel: 当用户点击搜索键盘上的“取消”按钮时触发。
onBack: 当用户点击导航栏的返回按钮时触发。
使用方法:
在页面的 WXML 文件中,你可以通过添加 bind 属性来监听这些事件。例如,如果你想监听搜索框的输入和确认事件,可以这样写:

<navigationbar
  bind:onSearchInput="onSearchInput"
  bind:onSearchConfirm="onSearchConfirm"
  bind:onSearchCancel="onSearchCancel"
>
  <!-- 导航栏内容,如标题等 -->
</navigationbar>
示例代码:
WXML (页面结构)

<navigationbar
  title="搜索示例"
  bind:onSearchInput="onSearchInput"
  bind:onSearchConfirm="onSearchConfirm"
  bind:onSearchCancel="onSearchCancel"
>
  <view class="search-container">
    <input type="search" placeholder="输入搜索内容" />
  </view>
</navigationbar>
WXSS (页面样式)

.search-container {
  flex: 1;
}
JS (页面逻辑)

Page({
  // 搜索框输入时触发
  onSearchInput: function(e) {
    console.log('搜索框输入内容:', e.detail.value);
  },

  // 点击搜索键盘上的“搜索”按钮时触发
  onSearchConfirm: function(e) {
    console.log('搜索确认,搜索内容:', e.detail.value);
    // 执行搜索操作
  },

  // 点击搜索键盘上的“取消”按钮时触发
  onSearchCancel: function(e) {
    console.log('搜索取消');
    // 可以在这里清空搜索框或执行其他操作
  }
});
在这个例子中,我们定义了一个带有搜索框的导航栏,并监听了三个事件:onSearchInput、onSearchConfirm 和 onSearchCancel。当用户在搜索框中输入时,onSearchInput 事件会被触发,我们可以通过 e.detail.value 获取到输入的内容。当用户点击搜索键盘上的“搜索”或“取消”按钮时,相应的 onSearchConfirm 或 onSearchCancel 事件会被触发,开发者可以在这些事件的处理函数中实现搜索逻辑或取消操作。

请注意,<navigationbar> 组件在不同版本的微信小程序基础库中支持程度可能有所不同,具体使用时请参考最新的官方文档。

组件中的事件通信:

微信小程序的组件间数据通信主要通过以下几种方式实现,而不是特定的组件:

全局变量:
使用 getApp() 方法访问全局的 App() 实例,可以在不同页面和组件间共享数据。

// 在App()中定义全局数据
App({
  globalData: {
    sharedData: {}
  }
});

// 在任何页面或组件中访问全局数据
const app = getApp();
console.log(app.globalData.sharedData);
页面栈:
利用页面栈,当前页面可以访问到前一个页面的实例,从而进行数据通信。

// 在前一个页面
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2];
prevPage.setData({
  someData: 'some value'
});

// 注意:这种方法依赖页面栈,可能受到页面跳转方式的影响。
事件系统:
使用 wx.onMessage 和 wx.postMessage 在不同页面或组件间传递消息。

// 在发送端
wx.postMessage({
  data: {
    message: 'Hello from child'
  }
});

// 在接收端
wx.onMessage(function(data) {
  console.log(data.message);
});
回调函数:
在页面跳转时传递回调函数,子页面在需要时调用这个回调函数将数据传回父页面。

// 在父页面跳转时
wx.navigateTo({
  url: 'child/page',
  success: function(res) {
    res.eventChannel = this;
  }
});

// 在子页面
const eventChannel = getCurrentPages().reverse()[0].eventChannel;
eventChannel.emit('passData', {
  someData: 'some value'
});
缓存(Storage):
使用 wx.setStorageSync 和 wx.getStorageSync 将数据存储在本地缓存中,然后在其他页面或组件中读取。

// 存储数据
wx.setStorageSync('someKey', 'some value');

// 读取数据
const value = wx.getStorageSync('someKey');
属性(Properties):
在自定义组件中,父组件可以通过属性将数据传递给子组件。

<!-- 父组件 -->
<custom-component some-prop="some value"></custom-component>
// 在子组件中定义属性
Component({
  properties: {
    someProp: {
      type: String,
      value: ''
    }
  }
});
事件(Events):
子组件可以通过触发事件将数据传递给父组件。

// 在子组件中触发事件
this.triggerEvent('customEvent', {
  detail: 'some data'
});
环境变量(Environment Variables):
在微信开发者工具中,可以设置环境变量,这些变量可以在小程序的代码中使用。

云函数:
通过云函数和云数据库,可以在客户端之间进行间接的数据通信。

这些方法各有适用场景,开发者可以根据实际需求选择最合适的数据通信方式。

然后我问了专家,目前主流的缓存处理法比较合适,先不问为什么,作为小白的我,先做一个DEMO出来再去问吧,实践出真知。
其中KIMI目前只能以文字的方式教授,相关的链接资料和Reference 如下:
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

https://developers.weixin.qq.com/miniprogram/dev/framework/

https://vant-ui.github.io/vant-weapp/#/home

标签:index,微信,程序开发,基础,搜索,组件,wx,页面
From: https://www.cnblogs.com/qinweiping/p/18277204

相关文章

  • C++基础语法——《循环结构》题解
    循环结构参考资料:https://blog.csdn.net/m0_56945138/article/details/118929416需要掌握:1.for循环用法2.while循环用法3.continue跳过和break终止题号题目名称题解链接3067输出范围内的整数https://www.cnblogs.com/jyssh/p/182740551206简单的累加https://www......
  • 文件的基础
    1、定义文件:一组相关数据的有序集合。文件名:这个数据集合的名称。2、文件类型Linux上一切皆文件常规文件:-}ASCII码文件}二进制的文件目录:d字符设备:c块设备:b有名管道:p套接口:s符号链接:l3、系统调用和库函数系统调用用户空间进程访问内核的接口把......
  • HarmonyOS应用开发者基础认证,Next版本发布后最新题库
    笔者会尽量找到答案的出处,力求答案准确无误。有些题目答案可能有错,也有一些笔者实在找不到出处,也不知道答案的,如果读者发现错误或有补充建议,欢迎评论或私信笔者。您的每一条反馈都是宝贵的,能够帮助笔者不断完善这篇文章,也能让下一个看到这篇文章的读者,从中获得更加丰富和准......
  • 墨烯的C语言技术栈-C语言基础-001
    (最近报名了9月的计算机二级得好好重温一下C语言祝我计算机二级必过!)学习视频为B站的哔哩大学计算机学院参考书籍为C语言程序设计第五版(张磊主编)一.什么是C语言C语言是一门通用计算机编程语言广泛应用底层开发C语言的设计目标是提供一种能以简易的方式编译处理低级存......
  • 应用数学与机器学习基础 - 深度学习的动机与挑战篇
    序言深度学习,作为当代人工智能领域的核心驱动力,其动机源于对模拟人类智能深层认知机制的渴望。我们追求的是让机器能够像人类一样理解、分析并应对复杂多变的世界。然而,这一追求之路并非坦途,面临着数据获取与处理的挑战、模型复杂度的控制、计算资源的巨大消耗等重重障碍。......
  • vim基础使用
    五、vim编辑器的使用所有的Linux系统都默认有vi编译器,它就相当于Windows的记事本,当然,你也可以选择更好用的vim编译器,需要下载yuminstallvim-yvim有三种模式使用vimfilenamewq!之后这个命令如果filename不存在则创建文件[root@bogonopt]#vimzhanghaowei.txt[root@......
  • 【python】一篇文零基础到入门:快来玩吧~
    本笔记材料源于:PyCharm|创建你的第一个项目_哔哩哔哩_bilibiliPython语法及入门(超全超详细)专为Python零基础一篇博客让你完全掌握Python语法-CSDN博客0为什么安装python和pycharm?不同于c,c++,这些语言需要编译器转成机器码,然后执行。python可以靠解释器逐行转换,执行。......
  • 【ESP32】打造全网最强esp-idf基础教程——13.ESP32中的NVS
    ESP32中的NVS    这几天的天气只有钱包的余额能让我冷静,好好活着,每天都有新的打击,写写博客压压惊。一、什么是NVS?    NVS即Non-volatilestorage,意思是非易失存储,也就是掉电后能依然能持久化保存数据。在我们应用NVS时,一般用于存储一些配置数据、状态数据等,一......
  • Linux基础命令
    三、基础命令全解【1】、ls命令查看folderandfile使用方法:Usage:ls[OPTION]...[FILE]...常用选项-a:显示目录下所有的内容,包括隐藏内容-l:以长格式显示目录下的内容以及详细信息-h:以人性化显示目录下各个文件的大小(KB、MB、GB)-d:仅显示目录本身而不显示内部的文......
  • 【深度学习】图形模型基础(3):从零开始认识机器学习模型
    1.引言机器学习,这一古老而又充满活力的领域,其历史可追溯至上世纪中叶。然而,直到20世纪90年代初,机器学习才开始展现出其广泛的应用潜力。在过去的十年里,机器学习更是迎来了前所未有的蓬勃发展,其应用范畴广泛,不仅在网络搜索、自动驾驶汽车、医学成像和语音识别等领域大放异彩......