零基础微信小程序开发——WXML 模板语法之事件绑定(保姆级教程+超详细)
🎥 作者简介: CSDN\阿里云\腾讯云\华为云开发社区优质创作者,专注分享大数据、Python、数据库、人工智能等领域的优质内容
🌸个人主页: 长风清留杨的博客
🍃形式准则: 无论成就大小,都保持一颗谦逊的心,尊重他人,虚心学习。
✨推荐专栏: Python入门到入魔,Mysql入门到入魔,Python入门基础大全,Flink入门到实战
🍂若缘分至此,无法再续相逢,愿你朝朝暮暮,皆有安好,晨曦微露道早安,日中炽热说午安,星河长明寄晚安🍂
WXML 模板语法
事件绑定
什么是事件
在小程序开发中,事件是渲染层(Webview)到逻辑层(JsCore)的通讯方式。简单来说,当用户与小程序界面进行交互时(如点击按钮、滑动页面等),这些交互行为会被捕获并转化为特定的事件。这些事件随后被发送给逻辑层,逻辑层接收到事件后,会根据预定义的回调函数来处理这些事件,并执行相应的业务逻辑。
事件的触发与传递
- 触发事件:用户在渲染层与小程序界面进行交互,如点击按钮,这个行为会触发一个事件。
- 事件传递:触发的事件会从渲染层被发送到逻辑层。这个过程中,事件携带了触发它的用户行为信息,如点击的位置、点击的元素等。
- 逻辑层处理:逻辑层接收到事件后,会根据预定义的回调函数来处理这个事件。回调函数定义了当事件发生时应该执行的操作,这些操作可以是更新界面、调用API等。
小程序中常用的事件
类型 | 绑定方式 | 事件描述 |
---|---|---|
tap | bindtap 或 bind:tap | 用户点击时触发,适用于按钮、图片等可点击元素 |
longtap | bindlongtap 或 bind:longtap | 用户长按时触发,适用于需要用户长时间按压的场景 |
touchstart | bindtouchstart 或 bind:touchstart | 手指触摸开始时触发 |
touchmove | bindtouchmove 或 bind:touchmove | 手指触摸后移动时触发 |
touchend | bindtouchend 或 bind:touchend | 手指触摸结束时触发 |
touchcancel | bindtouchcancel 或 bind:touchcancel | 手指触摸被打断(如来电)时触发 |
input | bindinput 或 bind:input | 文本框内容改变时触发,常用于获取用户输入的内容 |
change | bindchange 或 bind:change | 组件状态改变时触发,如单选框、复选框、滑动条等组件的值改变 |
submit | bindsubmit 或 bind:submit | 表单提交时触发,常用于收集用户输入的数据 |
reset | bindreset 或 bind:reset | 表单重置时触发,常用于清空表单中的数据 |
confirm | bindconfirm 或 bind:confirm | 弹出框(如模态框)确认按钮被点击时触发 |
cancel | bindcancel 或 bind:cancel | 弹出框(如模态框)取消按钮被点击时触发 |
scroll | bindscroll 或 bind:scroll | 页面或组件滚动时触发,常用于实现滚动监听 |
swipe | bindswipe 或 bind:swipe | 用户快速滑动时触发,常用于实现轮播图等滑动效果 |
事件对象的属性列表
当事件回调触发的时候,会收到一个事件对象 event,它的详细属性如下
属性名 | 数据类型 | 说明 |
---|---|---|
type | string | 事件类型 |
timeStamp | number | 触发事件的时间戳 |
target | object | 触发事件的源头组件 |
currentTarget | object | 当前绑定事件处理函数的组件 |
detail | object | 事件的附加数据,根据具体事件类型不同而不同 |
touches | array | 触摸事件时,当前触摸点列表 |
changedTouches | array | 触摸事件时,发生变化的触摸点列表 |
targetTouches | array | 触摸事件时,目标元素上的触摸点列表 |
其中target
和detail
是比较常用的
target 和 currentTarget 的区别
target 是触发该事件的源头组件,而 currentTarget 则是当前事件所绑定的组件。
首先设置了一个view组件,然后在view组件中嵌套了一个button组件,通过bindtap给view组件绑定了一个outerHandler(手指触摸事件)
点击内部的按钮时,点击事件以冒泡的方式向外扩散,也会触发外层 view 的 tap 事件处理函数。(也就是说当点击按钮的时候,首先触发按钮的事件,然后会进行扩散,触发view
组件的事件)
此时,对于外层的 view 来说:
- e.target 指向的是触发事件的源头组件,因此,e.target 是内部的按钮组件(也就是说先点击的按钮,先触发的是按钮操作,所以按钮是源头组件)
- e.currentTarget 指向的是当前正在触发事件的那个组件,因此,e.currentTarget 是当前的 view 组件(因为先触发的button组件,然后再粗发view组件,所有当前正在触发的组件是view组件)
bindtap 的语法格式
在小程序中,不存在 HTML 中的 onclick 鼠标点击事件,而是通过 tap 事件来响应用户的触摸行为。
通过 bindtap,可以为组件绑定 tap 触摸事件,语法如下:
index.wxml文件
<button type="primary" bindtap="btnTapHandler">按钮</button>
在页面的 .js 文件中定义对应的事件处理函数,事件参数通过形参 event(一般简写成 e) 来接收:
index.js文件
Page({btnTapHandler(e){console.log(e)}})
然后再页面上点击按钮,查看Console中捕捉到的事件
捕捉到的事件:
- type:
- 值:“tap”
- 说明:表示事件类型是点击事件。
- timeStamp:
- 值:13170578
- 说明:表示事件触发的时间戳,这个值通常用于比较事件的先后顺序。
- target:
- 说明:触发事件的节点对象。
- 包含字段:
- id: “”(节点ID,此处为空)
- offsetLeft: 103(节点相对于其最近的具有定位(positioned)父节点的水平偏移量)
- offsetTop: 91(节点相对于其最近的具有定位(positioned)父节点的垂直偏移量)
- dataset: {…}(节点的自定义数据集合)
- currentTarget:
- 说明:绑定事件的当前组件对象。在事件捕获和冒泡阶段,currentTarget始终指向事件绑定的组件,而target指向触发事件的节点。
- 包含字段与target相同,说明此处事件直接绑定在了触发节点上。
- detail:
- 说明:事件的详细信息。
- 包含字段:
- x: 213.66015625(点击事件在组件内的相对X坐标)
- y: 110.08984375(点击事件在组件内的相对Y坐标)
- mark:
- 值:{}
- 说明:用于传递一些额外的信息,此处为空。
- mut:
- 值:false
- 说明:通常用于表示事件是否由用户交互触发,此处表示事件是由用户交互触发的(但这里的命名和常规理解有些出入,常规上应该是true表示由用户触发,具体含义可能依赖于小程序框架的实现)。
- changedTouches:
- 说明:包含了所有触发了当前事件的触摸点(Touch objects)的数组。
- 包含字段:{…}(具体字段取决于触摸事件的具体实现)
- touches:
- 说明:包含了当前在屏幕上的所有触摸点(Touch objects)的数组。
- 包含字段:{…}(具体字段取决于触摸事件的具体实现)
- _relatedInfo:
- 说明:这是一个非标准字段,可能是小程序框架或特定组件自定义添加的。
- 包含字段:
- anchorTargetText: “按钮”(触发事件的节点文本)
- anchorRelatedText: “”(与触发事件相关的其他文本,此处为空)
- anchorTapTime: 1733147444414(触发事件的时间戳,可能是毫秒级时间)
- _allowWriteOnly, _requireActive, _userTap:
- 这些字段可能是框架内部使用的,用于控制事件的处理流程或行为。
在事件处理函数中为 data 中的数据赋值
通过调用 this.setData(dataObject) 方法,可以给页面 data 中的数据重新赋值,示例如下:
index.wxml文件:
<button type="primary" bindtap="changeC">加1</button>
<view class="container"><!-- 动态绑定文本 --><text>当前用户名:{{count}}</text>
</view>
- 按钮 (
<button>
):- type=“primary”:设置按钮的类型为“primary”,这通常意味着按钮会有一种醒目的样式(如蓝色背景),以突出显示。
- bindtap=“changeC”:这是一个事件绑定,当用户点击这个按钮时,会触发 changeC 方法。这个方法定义在 index.js 文件中。
- 视图容器 (
<view>
) 和文本 (<text>
):<view class="container">
:定义了一个类名为 container 的视图容器,用于包裹内部的文本元素。<text>
当前用户名:{{count}}</text>
:这里使用了数据绑定({{count}}),它会显示 index.js 文件中 data 对象中 count 属性的值。
index.js文件:
Page({data:{count:0},changeC(){this.setData({count:this.data.count+1})}})
- 数据 (data):
- count: 0:定义了一个名为 count 的数据属性,初始值为 0。这个属性用于存储和显示计数器的值。
- 事件处理方法 (changeC):
- changeC() 方法是一个事件处理函数,当按钮被点击时,这个方法会被调用。
- this.setData({ count: this.data.count + 1 }):这行代码用于更新 count 的值。setData 方法是小程序提供的用于更新页面数据的方法。这里它将 count 的值增加 1。
在小程序(如微信小程序)的开发中,this.setData({}) 是一个非常重要的方法,它用于更新页面数据并触发页面的重新渲染。
当你调用 this.setData(object) 时,你实际上是在告诉小程序框架:“我想更新这些数据,并且希望页面能够反映出这些变化。
this.data.count表示获取到当前页面上count的值
下面结果图中注意页面上的数字变化,和右下角中的AppData中count的变化
事件传参(错误示范)
小程序中的事件传参比较特殊,不能在绑定事件的同时为事件处理函数传递参数。例如,下面的代码将不能正常工作
<button type="primary" bindtap="btnHandler(666)">事件传参</button>
定义了一个按钮,在按钮中定义了一个点击事件,事件中直接给btnHandler加上括号里面加入了666这个参数,这样是不可以的!小程序会把btnHandler(666)当做事件的名称,不会把括号里面的当成参数
事件传参(正确示范)
可以为组件提供 data-* 自定义属性传参,其中 * 代表的是参数的名字,示例代码如下:
<button type="primary" bindtap="btnHandler" data-age="{{2}}">事件传参</button>
定义了一个按钮(button),设置了一个点击事件,名称为btnHandler,然后定义了一个参数,参数的名称是age,值是2,设置参数的时候使用的是Mustache 语法的格式{{}},如果不使用Mustache 语法的格式那么参数就是字符串的格式,使用了在里面写一个2,那么就是数字格式
事件传参(获取事件参数的值)
在事件处理函数中,通过 event.target.dataset.参数名 即可获取到具体参数的值,示例代码如下:
index.wxml文件
<button type="primary" bindtap="user_age" data-age="{{2}}">查看年龄</button>
index.js文件
Page({user_age(event){console.log("获取所有参数:",event.target.dataset)console.log("当前用户的年龄是:",event.target.dataset.age)}})
bindinput 的语法格式
在小程序中,通过 input 事件来响应文本框的输入事件
index.wxml文件
定义一个bindinput,绑定文本框的输入事件,名称为input_username
<input bindinput="input_username"></input>
index.js文件
Page({input_username(e){// e.detail.value 每次都会获取文本框中最新的值console.log(e.detail.value)}})
我先输入一个张,然后输入一个三,然后再输入一个李,然后再输入一个四,可以看到,每次都是获取到最新的输入内容
实现文本框和 data 之间的数据同步
(1)定义数据:
在小程序页面的data对象中,我们需要定义一个属性来存储文本框中的值。这个属性可以是任意名称,但最好能够反映其用途,比如inputValue。
Page({data: {inputValue: '' // 初始化为空字符串}
})
(2)渲染结构:
在WXML文件中,我们使用<input>
标签来创建一个文本框,并通过value属性绑定到data对象中的inputValue属性。同时,我们需要为<input>
标签添加一个bindinput事件监听器,用于捕获用户的输入事件。
<input type="text" value="{{inputValue}}" bindinput="handleInputChange" />
这里,{{inputValue}}是WXML模板语法中的插值表达式,用于将data对象中的inputValue属性值渲染到文本框中。bindinput="handleInputChange"表示当文本框的内容发生变化时,会调用handleInputChange方法来处理这个事件。
(3)美化样式:
虽然这一步不是实现数据同步所必需的,但为了使文本框更加美观,我们可以在WXSS文件中为其添加一些样式。例如,可以设置文本框的宽度、高度、边框、内边距等属性。
input {width: 100%;height: 40px;border: 1px solid #ccc;padding: 5px;box-sizing: border-box;
}
(4)绑定 input 事件处理函数:
在页面的JavaScript文件中,我们需要定义一个名为handleInputChange的方法来处理bindinput事件。这个方法会接收一个事件对象作为参数,我们可以通过这个对象的detail.value属性来获取文本框中的当前值。然后,我们使用this.setData方法来更新data对象中的inputValue属性。
Page({data: {inputValue: ''},handleInputChange: function(e) {this.setData({inputValue: e.detail.value});}
})
在这里,this.setData是一个非常重要的方法,它用于更新页面的数据并触发页面的重新渲染。当我们调用this.setData时,小程序框架会比较新旧数据之间的差异,并只更新那些发生变化的部分,从而提高页面的渲染效率。
(5)结果:
注意看AppData中的内容,变量的值会随着我们的输入实时变化
相关文章:
零基础微信小程序开发——WXML 模板语法之事件绑定(保姆级教程+超详细)
🎥 作者简介: CSDN\阿里云\腾讯云\华为云开发社区优质创作者,专注分享大数据、Python、数据库、人工智能等领域的优质内容 🌸个人主页: 长风清留杨的博客 🍃形式准则: 无论成就大小,…...
qt QNetworkAccessManager详解
1、概述 QNetworkAccessManager是QtNetwork模块中的一个核心类,它允许应用程序发送网络请求并接收响应。该类是网络通信的基石,提供了一种方便的方式来处理常见的网络协议,如HTTP、HTTPS等。QNetworkAccessManager对象持有其发送的请求的通用…...
在2023idea中如何创建SpringBoot
目录 一.下载和安装 Maven 1.前往 https://maven.apache.org/download.cgi 下载最新版的 Maven 程序 2.将文件解压到D:Program FilesApachemaven目录 3.新建环境变量MAVEN_HOME,赋值D:Program FilesApachemaven 4.编辑环境变量Path,追加%MAVEN_HOME…...
R语言医学数据分析实践-R语言的数据结构
【图书推荐】《R语言医学数据分析实践》-CSDN博客 《R语言医学数据分析实践 李丹 宋立桓 蔡伟祺 清华大学出版社9787302673484》【摘要 书评 试读】- 京东图书 (jd.com) R语言编程_夏天又到了的博客-CSDN博客 在R语言中,数据结构是非常关键的部分,它提…...
PID算法
PID算法是闭环控制中的核心算法之一,它结合了比例(P)、积分(I)和微分(D)三种控制策略,能够实现对被控对象的精确控制。以下将详细介绍PID算法,并针对P、I、D分别举出三个…...
C++day2
1.利用函数重载,实现对整形数组的冒泡排序,对浮点型数组的冒泡排序 #include <iostream>using namespace std;int bubblesort(int a[]) {int i,j,temp;for(i1;i<5;i){for(j0;j<5-i;j){if(a[j]>a[j1]){temp a[j];a[j] a[j1];a[j1] tem…...
RFdiffusion ContigMap类初始化方法解读
功能概述 __init__ 方法是 ContigMap 类的初始化函数,其核心任务是构建和管理一个蛋白质序列和结构的映射系统,处理用户提供的输入数据(如片段信息、参考序列、掩码等),并生成内部所需的各种索引和映射,以便在蛋白质设计中有效地定义、解析和操作不同区域的结构和序列。…...
LeetCode 每日一题 2024/12/2-2024/12/8
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 12/2 52. N 皇后 II12/3 3274. 检查棋盘方格颜色是否相同12/4 2056. 棋盘上有效移动组合的数目12/5 3001. 捕获黑皇后需要的最少移动次数12/6 999. 可以被一步捕获的棋子数…...
5G模组AT命令脚本-关闭模组的IP过滤功能
关闭模组的IP过滤功能 关闭模组的IP过滤功能 5G 模组通常使用nat方式为 下挂设备或上位机提供上网服务,默认情况,不做NAt的包无法经由 模组转发,如果禁掉这个限制 ,可使用本文中的配置命令本脚本用于关闭模组的IP过滤功能…...
得力DL-720C(new)标签热敏打印机
特点 适配标签宽度20-90mm的热敏标签纸,无需碳带。不适用于使用碳带上色的热转印纸(如铜版纸)。标签纸类型支持: 间隙纸(靠间隙定位)。得力自配的纸就是间隙纸,不透明。黑标纸(靠背…...
openjdk17 jvm加载class文件,解析字段和方法,C++源码展示
##构造方法ClassFileParser,parse_stream解析文件流 ClassFileParser::ClassFileParser(ClassFileStream* stream,Symbol* name,ClassLoaderData* loader_data,const ClassLoadInfo* cl_info,Publicity pub_level,TRAPS) :_stream(stream),_class_name(NULL),_load…...
基于 AutoFlow 快速搭建基于 TiDB 向量搜索的本地知识库问答机器人
导读 本文将详细介绍如何通过 PingCAP 开源项目 AutoFlow 实现快速搭建基于 TiDB 的本地知识库问答机器人。如果提前准备好 Docker、TiDB 环境,整个搭建过程估计在 10 分钟左右即可完成,无须开发任何代码。 文中使用一篇 TiDB 文档作为本地数据源作为示…...
Vue项目实战-新能源汽车可视化(二)(持续更新中)
一.项目代码 1.DataSceen <template><div id"app-content"><div class"containerBox"><!-- 左边区域 --><div classleft><!-- 车辆情况 --><div class"item"></div><!-- 历史数据 -->&…...
CSS border 0.5px 虚线
border 0.5px 存在很多兼容问题,很多设备都会默认展示 1px 如果是实线可以用 background 和 height 1px 然后transform scaleY(0.5) 去实现。 但是虚线怎么办呢。 .ticket-line::before {content: ;position: absolute;top: 0;left: 0;right: 0;bottom: 0;width: …...
利用最大流算法解决Adam教授的双路径问题
利用最大流算法解决Adam教授的双路径问题 Adam教授的烦恼问题描述与转换转换步骤伪代码C代码示例解释Adam教授的烦恼 Adam教授有两个儿子,可不幸的是,他们互相讨厌对方。随着时间的推移,问题变得如此严重,他们之间不仅不愿意一起走到学校,而且每个人都拒绝走另一个人当天…...
c#如何开发后端
1选择开发框架 在 C# 中,用于后端开发最常用的框架是ASP.NET。它提供了构建 Web 应用程序、Web API 和微服务等多种后端服务所需的功能。ASP.NET有不同的模式,如ASP.NET MVC(Model - View - Controller)和ASP.NET Web API。ASP.NE…...
05_掌握Python3.11新特性-模式匹配
学习完本篇内容,你将掌握以下技能: 了解 Python 3.11 中的模式匹配新特性掌握如何使用模式匹配来简化代码和提高代码的可读性熟练掌握并应用到实际编程中python3.11新特性-模式匹配 在 Python 3.11 中,引入了模式匹配(pattern match...
【AI日记】24.12.09 kaggle 比赛 Titanic-12
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 内容: 学习 kaggle 入门比赛 Titanic - Machine Learning from Disaster学习机器学习(pandas,numpy,sklearn),数据可视化ÿ…...
Linux,如何要定位并删除占用磁盘空间的大文件?
Linux,如何要定位并删除占用磁盘空间的大文件? 要定位并删除占用磁盘空间的大文件主要有以下这些步骤: 1. 使用 du 命令查找大文件或目录 du(Disk Usage)命令可以帮助你查找占用空间较大的文件或目录。 du -ah --…...
【Java】—— 图书管理系统
基于往期学习的类和对象、继承、多态、抽象类和接口来完成一个控制台版本的 “图书管理系统” 在控制台界面中实现用户与程序交互 任务目标: 1、系统中能够表示多本图书的信息 2、提供两种用户(普通用户,管理员) 3、普通用户…...
初识Linux · 线程同步
目录 前言: 认识条件变量 认识接口 快速使用接口 生产消费模型 前言: 前文我们介绍了线程互斥,线程互斥是为了防止多个线程对临界资源访问的时候出现了对一个变量同时操作的情况,对于线程互斥来说,我们使用到了锁…...
游戏引擎学习第40天
仓库 : https://gitee.com/mrxiao_com/2d_game 整理了一些需要完成的任务,确保所有内容都已清理完成,因为需要为后续的数学部分打好基础。下一步将认真开始处理数学相关内容,因此在此之前,需要彻底梳理未完成的事项,清…...
概率论——假设检验
解题步骤: 1、提出假设H0和H1 2、定类型,摆公式 3、计算统计量和拒绝域 4、定论、总结 Z检验 条件: 对μ进行检验,并且总体方差已知道 例题: 1、假设H0为可以认为是570N,H1为不可以认为是570N 2、Z…...
【Pandas】pandas isnull
Pandas2.2 General Top-level missing data 方法描述isna(obj)用于检测数据中的缺失值isnull(obj)用于检测数据中的缺失值notna(obj)用于检测数据中的非缺失值notnull(obj)用于检测数据中的非缺失值 pandas.isnull() pandas.isnull() 是 Pandas 库中的一个函数,…...
Rust HashMap使用
Rust 的 HashMap 是一个功能强大的数据结构,它结合了哈希表的高效性和 Rust 编程语言的内存安全特性。通过提供常数时间复杂度的查找、插入和删除操作,以及丰富的 API,它在许多实际应用中都非常有用。 示例代码: use std::colle…...
Spring Boot如何实现防盗链
一、什么是盗链 盗链是个什么操作,看一下百度给出的解释:盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的…...
TIM输入捕获---STM
一、简介 IC输入捕获 输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存在CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数 每个高级定时器和通用定时器都拥有4个输入捕获通道 可配置为PWMI模…...
核密度估计——从直方图到核密度(核函数)估计_带宽选择
参考 核密度估计(KDE)原理及实现-CSDN博客 机器学习算法(二十一):核密度估计 Kernel Density Estimation(KDE)_算法_意念回复-GitCode 开源社区 引言 在统计学中,概率密度估计是一种重要的方法࿰…...
javaScript Tips
一键去掉鼠标的图标 document.body.style.cursor none; 获取一个随机颜色 const randomHex () >#${Math.floor(Math.random() * 0xffffff).toString(16).padEnd(6, 0)}; 生成随机字符串,各种随机基本都是这个原理 const randomString () > Math.rand…...
【Ubuntu】清理、压缩VirtualBox磁盘空间大小
1、说明 本人为虚拟机创建了两个硬盘:root.vdi 和 hoom.vdi,在创建虚拟机时,分别挂载在/root目录和/home目录下。 下面演示分别清理、压缩两个磁盘的空间。 2、清理空间 1)清理 root.vid sudo dd if=/dev/zero of=/EMPTY bs=1M;sudo rm -f /EMPTY输出信息中会提示,如…...
若依 ruoyi VUE el-select 直接获取 选择option 的 label和value
1、最新在研究若依这个项目,我使用的是前后端分离的方案,RuoYi-Vue-fast(后端) RuoYi-Vue-->ruoyi-ui(前端)。RuoYi-Vue-fast是单应用版本没有区分那么多的modules 自己开发起来很方便,这个项目运行起来很方便,但是需要自定义的…...
C++小小复习一下
类,对象,成员变量,成员函数 特点:面向对象程序设计---因为要创建对象来调用类里面的函数或者成员变量 比如你的对象是一个生物-人:他会有自己的一些属性:身高,体重,性别等…...
JavaWeb学习(4)(四大域、HttpSession原理(面试)、SessionAPI、Session实现验证码功能)
目录 一、web四大域。 (1)基本介绍。 (2)RequestScope。(请求域) (3)SessionScope。(会话域) (4)ApplicationScope。(应用域) (5)PageScope。(页面域) 二、Ht…...
quartz 架构详解
Quartz是一个开源的作业调度框架,完全由Java编写,主要用于定时任务的调度和管理。Quartz的架构主要包括以下几个核心组件: 1.调度器(Scheduler):调度器是Quartz的核心组件,负责管理Qua…...
Redis安装和Python练习(Windows11 + Python3.X + Pycharm社区版)
环境 Windows11 Python3.X Pycharm社区版 思路 1 github下载redis压缩包 ,安装并启动redis服务,在Pycharm中运行python程序,连接redis服务,熟悉redis的使用和巩固python语言。 2 python开发环境的搭建参考 https://mp.csdn.…...
明年 iPhone 将搭载苹果自研 5G 基带芯片
明年 iPhone 将搭载苹果自研 5G 基带芯片 据彭博社记者 Mark Gurman 透露,苹果首款自主研发 5G 基带芯片即将面世。 苹果首款自研 5G 基带芯片将命名为「Sinope」,将应用在 2025 年发布的 iPhone SE、iPhone 17 Slim 版以及低端系列的 iPad 系列。「Si…...
1.1 Beginner Level学习之“编写简单的发布服务器和订阅服务器”(第十二节)
学习大纲: 1. 编写发布服务器节点 在ROS中,**节点(Node)**是与ROS网络通信的基本单位。在这个部分,我们将创建一个简单的发布节点(talker),它会不断向话题(topic&#x…...
C语言 字符串操作函数
strncpy() 用于将一个字符串的一部分拷贝到另一个字符串中。 char* strncpy(char* destination, const char* source, size_t num);参数:destination 是目标字符串的指针,表示将要拷贝到的位置source 是源字符串的指针,表示要拷贝的字符串num…...
论文概览 |《Cities》2024.07 Vol.150(上)
本次给大家整理的是《Cities》杂志2024年07月第150期的论文的题目和摘要,一共包括90篇SCI论文!由于论文过多,我们将通过两篇文章进行介绍,本篇文章介绍第1--第45篇论文! 论文1 Spatiotemporal infection dynamics: Linking indiv…...
查看Windows系统上的Redis服务器是否设置了密码
查看 Redis 配置文件 1.找到 Redis 配置文件: 通常Redis配置文件名为 redis.windows.conf 或 redis.conf,它位于Redis安装目录中。 2.打开配置文件: 使用文本编辑器(如Notepad、VS Code等)打开该文件。 3.查找 re…...
30天学会Go--第6天 GO语言 RESTful API 学习与实践
30天学会Go–第6天 GO语言 RESTful API 学习与实践 文章目录 30天学会Go--第6天 GO语言 RESTful API 学习与实践一、 RESTful API 的设计原则1.1 RESTful API 的核心概念1.2 RESTful API 的 URL 设计1.3 RESTful API 的数据格式 二、 实现 RESTful API2.1 定义数据模型2.2 实现…...
数据分析特征标准化方法及其Python实现
数据分析特征标准化方法及其Python实现 1、概述 在数据分析中,对特征进行标准化主要是: 1、消除量纲影响 不同特征可能具有不同的量纲和数量级。 例如,一个特征可能是以米为单位的长度,而另一个特征可能是以秒为单位的时间。直接使用这些具有不同量纲的原始数据进行分析…...
【推导过程】常用共轭先验分布
文章目录 相关教程相关文献常用共轭先验分布预备知识贝叶斯统计后验分布的计算 正态均值(方差已知)的共轭先验分布是正态分布二项分布中的成功概率 θ 的共轭先验分布是贝塔分布正态均值(方差已知)的共轭先验分布是倒伽玛分布 作者:小猪快跑 基础数学&计算数学&…...
notepad++安装教程(超详细)
1.下载地址(可以私信博主) https://notepad-plus.en.softonic.com/download 2.解压安装...
Django快速入门
目录 1 创建django工程2 运行django3 Django工程目录详解4 开始一个app5 CBV和FBV6 使用模板7 使用模板语言8 自定义simple_tag Django 是用 Python 写的一个自由和开放源码 web 应用程序框架。 web框架是一套组件,能帮助你更快、更容易地开发web站点。当你开始构建…...
ISO45001职业健康安全管理体系认证流程
前期准备 领导决策:企业高层领导需认识到实施 ISO 45001 体系的重要性和必要性,做出认证决策,并承诺提供必要的资源支持。成立工作小组:由企业各相关部门人员组成工作小组,明确各成员的职责和分工,确保工作…...
Elasticsearch一分钟
参考 FST有穷状态转换器/咆哮位图/增量缩紧 Es技术难点 架构...
MFC中如何创建一个非模态对话框
对话框是编程中常用的一个控件,非模态对话框与用户交互更加友好,用户不必关闭对话框就能进行其他操作,比如拷贝黏贴,对比数据,执行其他命令。 由于无模态对话经常使用,且用法类似,因此我把它写…...
【设计模式】单例模式 在java中的应用
文章目录 引言什么是单例模式单例模式的应用场景单例模式的优缺点优点缺点 单例模式的基本实现饿汉式单例模式懒汉式单例模式双重检查锁定静态内部类枚举单例 单例模式的线程安全问题多线程环境下的单例模式线程安全的实现方式1. **懒汉式单例模式(线程不安全&#…...
北京2024年CSP-S/J 及NOIP游记
北京2024年CSP-S/J 及NOIP游记 2024.9 开学2024.9 CSP-S12024.9 停课2024.10假期 误入歧途2024.10 CSP-S2 冲刺 2024.9 开学 开学升入初三,9月的前半个月一直在搞文化课(把文化课搞得风生水起),经历了1天的校运动会(摆…...