微信小程序-1

Thinkphp 5.1 微信小程序微信支付 刚学习thinkPHP,小白一位,记录一下,大神们不要笑! Pay.php <?php namespace app\index\controller; use think\exception\HttpResponseException; use think\Response; use lib\WeixinPay; class Pay { public function p... 阅读详情

开发区别

小程序与普通网页开发的区别:

  • 运行环境的不同
网页运行在浏览器环境中
小程序运行在微信环境中
  • API 不同
由于运行环境的不同,所以小程序中,无法调用DOM和BOM的API
但是,小程序中可以调用微信环境提供的各种API,例如:地理定位,扫码,支付......
  • 开发模式不同
网页的开发模式:浏览器 + 代码编辑器
小程序的开发模式:
	1.申请小程序开发账号
	2.安装小程序开发者工具
	3.创建和配置小程序项目

开发工具

推荐下载和安装最新的稳定版微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html

项目结构

结构作用
pages用来存放所有小程序的页面
utils用来存放工具性质的模块(例如:格式化时间的自定义模块)
app.js小程序项目的入口文件
app.json小程序项目的全局配置文件
app.wxss小程序项目的全局样式文件
project.config.json项目的配置文件
sitemap.json用来配置小程序及其页面是否允许被微信索引

页面组成

小程序官方建议把所有小程序的页面,都存放在 pages 目录中,以单独的文件夹存在,如图所示:

在这里插入图片描述

其中,每个页面由 4 个基本文件组成,它们分别是:

  • .js 文件(页面的脚本文件,存放页面的数据、事件处理函数等)
  • .json 文件(当前页面的配置文件,配置窗口的外观、表现等)
  • .wxml 文件(页面的模板结构文件)
  • .wxss 文件(当前页面的样式表文件)

JSON 配置文件

作用与类型

作用:JSON 是一种数据格式,在实际开发中,JSON 总是以配置文件的形式出现。小程序项目中也不例外:通过不同的 .json 配置文件,可以对小程序项目进行不同级别的配置

类型:小程序项目中有 4 种 json 配置文件,分别是:

  • 项目根目录中的 app.json 配置文件
  • 项目根目录中的 project.config.json 配置文件
  • 项目根目录中的 sitemap.json 配置文件
  • 每个页面文件夹中的 .json 配置文件

app.json

app.json 是当前小程序的全局配置文件,包括了小程序的所有页面路径、窗口外观、界面表现、底部 tab 等

Demo 项目里面的 app.json 配置如下:

{
  "pages": [
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "Weixin",
    "navigationBarBackgroundColor": "#ffffff"
  },
  "style": "v2",
  "componentFramework": "glass-easel",
  "sitemapLocation": "sitemap.json",
  "lazyCodeLoading": "requiredComponents"
}

了解上面 4 个配置项的作用:

  • pages : 用来记录当前小程序所有页面的路径
  • window : 全局定义小程序所有页面的背景色、文字颜色等
  • style : 全局定义小程序组件所使用的样式版本
  • sitemapLocation : 用来指明 sitemap.json 的位置

project.config.json

project.config.json 是项目配置文件,用来记录我们对小程序开发工具所做的个性化配置,例如:

  • setting 中保存了编译相关的配置
  • projectname 中保存的是项目名称
  • appid 中保存的是小程序的账号 ID

sitemap.json

微信现在已经开放小程序内搜索,效果类似于 PC 网页的 SEO.

sitemap.json 文件用来配置小程序页面是否允许微信索引.

当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引.

当用户的搜索关键字和页面的索引匹配成功的时候,小程序的页面将可能展示在搜索结果中.

{
  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
  "rules": [{
  "action": "allow",	// 允许被索引,当改为 "disallow" 时,即设置为不允许被索引
  "page": "*"
  }]
}

页面的 .json

小程序中的每一个页面,可以使用 .json 文件来对本页面的窗口外观进行配置,
页面中的配置项会覆盖 app.json 的 window 中相同的配置项。

新建小程序页面

只需要在 app.json -> pages 中新增页面的存放路径,小程序开发者工具就会帮我们自动创建对应的页面文件
本例中,下面新建了一个名为 list 的页面
{
  "pages": [
    "pages/index/index",
    "pages/logs/logs",
    "pages/list/list"
  ],
  "window": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "Weixin",
    "navigationBarBackgroundColor": "#ffffff"
  },
  "style": "v2",
  "componentFramework": "glass-easel",
  "sitemapLocation": "sitemap.json",
  "lazyCodeLoading": "requiredComponents"
}

修改项目首页

只需要调整 app.json -> pages 数组中页面路径的前后顺序,即可修改项目的首页。
小程序会把排在第一位的页面,当成项目首页进行渲染。

.wxml

WXML 和 HTML 的区别:

  1. 标签名称不同:
HTML (div, span, img, a)
WXML (view, text, image, nevigator)
  1. 属性节点不同
<a href="#">超链接</a>
<navigator url="/pages/home/home"></navigator>
  1. 提供了类似于 Vue 的模板语法
- 数据绑定
- 列表渲染
- 条件渲染

.wxss

WXSS (WeiXin Style Sheets) 是一套样式语言,用于描述 WXML 的组件样式,类似于网页开发中的 CSS

WXSS 和 CSS 的区别:

  1. 新增了 rpx 尺寸单位
CSS 中需要手动进行像素单位换算,例如 rem
WXSS 在底层支持新的尺寸单位 rpx,在不同大小的屏幕上小程序会自动进行换算
  1. 提供了全局的样式和局部的样式
项目根目录中的 app.wxss 会作用于所有小程序页面
局部页面的 .wxss 样式仅对当前页面生效
  1. WXSS 仅支持部分 CSS 选择器(只要不使用偏僻的选择器,大部分都是支持的)
.class 和 #id
element
并集选择器、后代选择器
::after 和 ::before 等伪类选择器

.js

小程序中的 JS 文件分为三大类,分别是:

  1. app.js 文件:是整个小程序项目的入口文件,通过调用 App() 函数来启动整个小程序
  2. 页面的 .js 文件:是页面的入口文件,通过调用 Page() 函数来创建并运行页面
  3. 普通的 .js 文件:是普通的功能模块,用来封装公共的函数或者属性供页面使用

小程序运行机制

启动过程

  1. 把小程序的代码包下载到本地
  2. 解析 app.json 全局配置文件
  3. 执行 app.js 小程序入口文件,调用 App() 创建小程序实例
  4. 渲染小程序首页
  5. 小程序启动完成

页面渲染过程

  1. 加载解析页面的 .json 配置文件
  2. 加载页面的 .wxml 模板 和 .wxss 样式
  3. 执行页面的 .js 文件,调用 Page() 创建页面实例
  4. 页面渲染完成

组件

小程序中的组件是由宿主环境提供的,开发者可以基于组件快速搭建漂亮的页面结构

官方把小程序的组件分为了九大类,分别是:

  1. 视图容器
  2. 基础内容
  3. 表单组件
  4. 导航组件
  5. 媒体组件
  6. map 地图组件
  7. canvas 画布组件
  8. 开放能力
  9. 无障碍访问

轮播图效果

简单轮播图效果:

<!--轮播图结构-->
<swiper class="swiper-container">
  <swiper-item>
    <view class="item">第1张轮播图</view>
  </swiper-item>

  <swiper-item>
    <view class="item">第2张轮播图</view>
  </swiper-item>

  <swiper-item>
    <view class="item">第3张轮播图</view>
  </swiper-item>
</swiper>
.swiper-container {
  height: 150px;
}

.item {
  height: 100%;
  line-height: 150px;
  text-align: center;
}

swiper-item:nth-child(1) .item {
  background-color: lightgreen;
}

swiper-item:nth-child(2) .item {
  background-color: lightskyblue;
}

swiper-item:nth-child(3) .item {
  background-color: lightpink;
}

swiper 组件常用属性:

<swiper indicator-dots="true">
	...
</swiper>
属性类型默认值说明
indicator-dotsbooleanfalse是否显示面板指示点
indicator-colorcolorrgba(0, 0, 0, 0.3)指示点颜色
indicator-active-colorcolor#000000当前选中的指示点颜色
autoplaybooleanfalse是否自动切换
intervalnumber5000自动切换时间间隔
circularbooleanfalse是否采用衔接滑动

选中文本效果

通过 text 组件中的 selectable 属性,实现长按选中文本内容效果:

<view>
  长按选中"手机号":
  <text selectable>11013978375</text>
</view>

渲染 html 文本

<rich-text nodes="<h1 style='color: red;'>我是html文本</h1>" />

按钮

前往官方文档:https://developers.weixin.qq.com/miniprogram/dev/component/button.html

图片

<image src="https://www.qq.com/404-2.gif" mode="widthFix"/>
mode属性的值说明
scaleToFill(默认值)不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素
aspectFit保持纵横比缩放图片,使图片的长边能完全显示出来,即:图片完整显示
aspectFill保持纵横比缩放图片,只保证图片的短边能完全显示出来,即:图片在一个方向上显示完整
widthFix宽度不变,高度自动变化,保持原图宽高比不变
heightFix高度不变,宽度自动变化,保持原图宽高比不变

API 介绍

小程序官方把 API 分成了下面 3 大类:

  1. 事件监听 API
特点:以 on 开头,用来监听某些事情的触发
举例:wx.onWindowResize(function callback) 监听窗口尺寸变化的事件
  1. 同步 API
特点1:以 Sync 结尾的 API 都是同步 API
特点2:同步 API 的执行结果,可以通过函数返回值直接获取,如果执行出错会抛出异常
举例:wx.setStorageSync('key', 'value') 向本地存储中写入内容
  1. 异步 API
特点:类似于 jQuery 中的 $.ajax(options) 函数,需要通过 success、fail、complete 接收调用的结果
举例:wx.request() 发起网络数据请求,通过 success 回调函数接收数据

项目成员的组织结构

在这里插入图片描述

小程序的开发流程

在这里插入图片描述

微信小程序NFC实战:从零到一读写M1门禁卡 本文详细介绍了如何利用微信小程序的NFC功能,从零开始开发一个能够读写M1门禁卡的应用。内容涵盖开发环境搭建、M1卡结构解析、核心API使用、数据读写实战以及避坑指南,为企业开发者提供了一套低成本、高效率的轻量级门禁解决方案。 阅读详情

相关推荐

从 0 到 1 开发微信小程序(一):初步认识微信小程序的结构

这是「从 0 到 1 开发微信小程序」系列的第一篇,我是字节莫。 鉴于是光速入门指南,这里就不涉及微信小程序的运行原理等高深的东西。经过两年的发展,微信小程序的框架已经非常地完善,如果不是一些很底层的需求(如性能优化等),是根本不需要深入到这种程度的。 微信小程序的结构 一个微信小程序是由一个一个的页面(page)组成的,就如同 Windows 程序是由一个一个的窗口组成的一样。开发微信小程序其实...

字节莫的优快云博客 1019

setEnable1v1Chat 微信小程序通话

微信小程序实时语音通话

weixin_45797900的博客 1893

iOS上架小课堂:被拒解决方案汇总【2.1蓝牙权限、3.1.1微信小程序、5.1.1权限使用说明、 境外IP访问权限等】

文章目录引言解决方案 引言 因为推广了微信小程序,昨天被拒绝了 Guideline 3.2.2 - Business - Other Business Model Issues - Unacceptable We noticed that your app includes an interface that displays or promotes mini programs for third-party apps, which is not appropriate for the App St

专注于计算机研发知识和资讯分享 2710

微信小程序 1rpx border ios 真机显示不全

微信小程序 1rpx border ios 真机显示不全 问题描述 在微信小程序的原生页面,ios 真机上 1rpx border 会出现个别边显示不全的情况; 解决方案 这里先放上问题直通车:微信小程序1rpx border ios真机显示不全问题分析及解决方案 经过分析:当标签的父容器宽度(单位rpx)÷2的值为偶数或偶数.5的时候会出现该bug,那么我们可以推到出用200.5*2=401,3...

FE-阿阳的博客 2747

微信小程序开发:从0到1的奇妙之旅

本文是微信小程序开发初级入门指南,涵盖从注册到发布的全流程。先介绍在微信公众平台注册账号及获取 AppID 的要点,再说明开发工具的安装与功能。还讲解界面布局设计原则、代码编写基础(含 WXML、WXSS、JS)及官方资源利用,阐述调试测试方法与审核发布流程,为新手提供清晰步骤,助其快速入门,顺利开发并发布首个微信小程序。

邓邓子的博客 2059

Vue3 + EventSource 实战:手把手教你打造实时AI聊天悬浮窗(附完整代码)

本文详细介绍了如何使用Vue3和EventSource技术构建一个实时AI聊天悬浮窗。文章从产品化视角出发,重点讲解了流式数据接收与渲染、悬浮窗UI交互的工程化实现、性能优化及高级功能,并提供了完整的代码示例,帮助开发者快速集成功能完整的AI问答系统。

assembly8low的博客 843

微信小程序nfc读取M1卡数据

const data16 = that.buf2hex(arrayBuffer) // ArrayBuffer转16进制。const data16 = that.buf2hex(arrayBuffer) // ArrayBuffer转16进制。if (res.techs.includes(adapter.tech.mifareClassic)) { //如果影响你nfc可以去掉。console.log('发现' + adapter.tech.mifareClassic + '卡');

DULIUu的博客 2757

多标签损失之Hamming Loss(PyTorch和sklearn)、Focal Loss、交叉熵和ASL损失

多标签损失

wuli_xin的博客 4461

微信小程序控制硬件 第14篇 微信小程序腾讯地图控制 4G Cat.1模组 ,安信可CA-01加载定位显示当前位置。

文章目录一、前言通讯协议技术问题点二、4G模组业务逻辑上报基站信息三、微信小程序控制另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!       微信物联网生态主要分在微信硬件开发平台与腾讯物联开发平台,前者已经停止维护,但依然有着很大的学习价值,而后者作为主推的平台,集成很多功能,包括从微信小程序实现配网到控制;       为了兼顾更多的朋友和自己的学习笔记,我将会一直更新此专题笔记,欢迎关注本人C

徐宏的博客 | 修身齐家治国平天下 2784

STM32H750VBT6在Keil5下载报错?三步搞定Flash Download Failed Cortex-M7问题

本文针对STM32H750VBT6在Keil5开发环境中常见的“Flash Download Failed Cortex-M7”下载报错问题,提供了系统性的三步解决方案。核心在于理解该芯片128KB内部Flash的特殊性,并详细指导用户检查更新Device Pack、精确配置Flash下载算法地址(0x08000000, 0x20000)以及进行硬件连接验证,从而快速修复调试器与芯片间的Flash操作协议问题。

weixin_29274969的博客 480

大数据面试题(附答案,持续更新...)

说说对hadoop的理解,都有哪些组件,分别是干什么的 还了解大数据其他组件嘛? kafka在什么地方需要用到zookeeper 了解HBase吗? 说下spark中的transform和action 为什么spark要把操作分为transform和action spark中有了RDD,为什么还要有Dataframe和DataSet? 了解函数式编程吗?说下c/c++和scala这种函数式编程语...

xiaozhaoshigedasb的博客 9947

微信小程序 border iOS 1px不展示bug

微信小程序border iOS 1pxbug

liwan_1219的博客 2751

FPGA矩阵键盘计算器Verilog实现与Quartus仿真全流程解析

本文详细解析了基于FPGA和Verilog的矩阵键盘计算器实现全流程,包括矩阵键盘扫描、状态机设计、算术运算逻辑及数码管显示驱动。通过Quartus仿真与Testbench测试,确保设计稳定性与准确性,适合数字逻辑设计初学者学习FPGA开发与硬件描述语言应用。

chair的专栏 742

微信小程序 TLS 版本必须大于等于1.2问题解决

微信小程序 TLS 版本必须大于等于1.2问题解决 此问题最近在微信小程序开发中,比较常见。 在解决这个问题之前,我们需要了解一下,当前的系统环境是否支持TLS1.2以上,可以参考一下表格: 确认系统支持以后,进行一下操作: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\Curre...

weixin_30478757的博客 94

大数据领域数据产品的团队激励与绩效管理

在大数据领域,数据产品的成功离不开高效协作的团队。团队激励与绩效管理的目的在于激发团队成员的工作热情和创造力,提高工作效率和质量,确保数据产品能够按时、高质量地交付。本文章的范围涵盖了大数据领域数据产品团队激励与绩效管理的各个方面,包括激励机制的设计、绩效评估的方法、团队沟通与协作等。本文将按照以下结构进行阐述:首先介绍核心概念与联系,明确相关概念的定义和相互关系;接着讲解核心算法原理和具体操作步骤,为团队激励与绩效管理提供理论支持和实践指导;然后分析数学模型和公式,帮助读者深入理解绩效评估的原理;

Java大师兄的博客 1018

14003.xilinx系统移植

文章目录1 xilinx 系统移植 sd卡版本1.1 创建项目1.2 拷贝 *.hdf 到工程目录1.3 根据hdf文件对系统进行配置1.3.1 设置内核源码路径为本地1.3.2 设置分区的名称与大小1.4 清除本地缓存并编译成功1.5 打包生成BOOT.BIN并拷贝到sd卡1.6 问题1.7 系统启动成功1.8 配置设备树文件丰富系统外设 1 xilinx 系统移植 sd卡版本 芯片型号 ZYNQ UltraScale+ XAZU2EG ,对应厂家提供的demo板为 zu102或zu104 1.1 创建

写给自己的笔记 481

微信小程序从0到1,踩过的坑

7」将项目中设计的图片资源一定要放在服务器上在项目中以https链接的方式使用图片减小项目体积微信小程序打包会把图片资源放在主包里,而主包大小不可超过固定大小2M。「3」如果使用了以下微信提供的API也需要去开通对应的服务( 如果不开通 上线审核肯定过不去)「6」开发中一定要将项目进行分包处理,否则主包内容过大导致集成失败就无法上传项目。「1」这个里面都需要去申请、配置(这里不具体描述了 小程序类目一定切合实际)「5」服务域名一定要提前申请,上线后的接口如果是ip地址什么的话是访问不通的。

wcb554724933的博客 367

初学者入门YOLO目标检测:从懵圈到上手,这篇文章讲透所有核心(附学习路径+避坑指南)

目标:比如训练一个“检测苹果和橘子”的模型,或者“检测人脸”的模型;任务:学会用LabelImg标注数据,制作YOLO格式的数据集,用命令行训练模型;关键:不用追求高精度,能训练出一个能检测出目标的模型就行。很多初学者卡在入门阶段,不是因为智商不够,而是因为“想太多,做太少”——总觉得要把所有原理搞懂才能动手,结果越想越怕,最后放弃。先动手,再动脑。先跑通一个案例,获得成就感;再制作自定义数据集,训练简单模型;最后再回头去理解原理,优化模型。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 688

大1匹空调怎么选?从能效、APF到安装,拆解米家26GW省电型号

空调选购的本质是技术选型,核心在于理解参数背后的物理意义,而非简单听信“一级能效”标签。对于卧室、小书房等10-15平方米空间,大1匹挂机是常见选择,其额定制冷量通常在2600W-2800W之间,匹数并非功率单位,而是制冷能力的粗略划分。真正决定省电效果的是全年能源消耗效率(APF)与变频压缩机的低频运行逻辑:APF数值越高,综合能耗越低;变频空调在达到设定温度后会降频运行,此时能效表现更佳。此外,电子膨胀阀、换热器排数、安装抽真空规范等隐性因素同样影响实际耗电与舒适度。在智能家居场景下,米家空调的App联

weixin_34228387的博客 465

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

PAG 4.1 正式发布:新增支持微信小程序

PAG 4.1 版本新增支持微信小程序,新增支持多个常用 AE 特性,如图层样式-渐变叠加、蒙版-羽化和不透明度、 亮度轨道遮罩/亮度轨道反转遮罩等。经过 2 个多月 6 个版本的迭代,PAG 4.1 版本已经趋于稳定,目前广泛应用于 QQ、小红书等头部 APP,现正式发布,欢迎大家接入使用。

鱼塘鱼汤的专栏 892

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

微信小程序NFC实现读写M1卡片

最近刚好有个这个需求,用NFC读写门禁卡,于是顺便就了解一下NFC和M1卡片的一些东西,不了解这些的可以先去网上找一些资料看一下,这样做起来更容易理解一些,我直接说些重要的和一些特别需要注意的。卡在微信小程序里面是不分扇区这些的,直接按块,原本是1个扇区有4块例如要在15扇区第1块写数据那么在微信小程序里面就要从60块开始写。超过了就要存入下一块了,若不够字节长度没有16个但是已经存完了可以在后面补0。在进行读写前都要使用认证一次。以上操作认证成功后可以读取块里面的数据。一样的也是要先进行认证。

m0_56675639的博客 1968

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

解决微信小程序要求TLS版本不低于1.2问题

解决微信小程序要求TLS版本不低于1.2问题 环境 服务器:Windows IIS。 原因 微信小程序后台要求所有的TLS(安全传输层协议)版本不低于1.2。 检查 如何查看自己服务器的TLS版本呢,windows服务器上可直接到注册表中查看。 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANN...

caoyiou1的博客 866

ThinkPHP5.1+微信小程序订阅通知

要使用微信订阅通知功能,需要用户首先在小程序点击订阅后,后台方可推送相关订阅通知模板,否则无法直接推送。 1、微信小程序开发: (1)将微信开发者工具的基础调试库选择一下,低版本的库会报函数错误,无法使用。 (2)小程序编辑调用方法。 wx.requestSubscribeMessage({ tmplIds: ['xxxx'], //此处填写相应的小程序通知模板的i...

qq_32015565的博客 2371

hmacsha1 小程序js_微信小程序 使用HMACSHA1和md5为登陆注册报文添加指纹验证签名...

/** [js-sha1]{}** @version 0.6.0* @author H, J-C [hjc_code@126.com]* @copyright H, J-C 2018-9-28* @license MIT*/var CryptoJS = CryptoJS || function(g, l) {var e = {}, d = e.lib = {}, m = function () {...

weixin_32021519的博客 735

微信小程序之1rpx的边框在部分机型上展示不全的问题

最近写小程序的商品列表时,商品卡片里需要展示商品的【优惠券】或者【包邮】标签。 设计稿里,标签的边框是0.5px, 在微信小程序里就是1rpx的宽度。 测试的时候发现在一部iphone6手机上,【包邮】的右边框展示不完整,如下图: 测试数据没有商品图片,忽略忽略,看【包邮】标签就好 ???? 包邮标签的样式写在css里, border: 1rpx solid #FF4444; border-width改成2rpx(即1px)是可以正常展示的,只不过边框变宽了,但是要按照稿子来啊*(审美缺失部的名头可是

haoyanyu_的博客 1803

解决微信小程序要求的TLS版本必须大于等于1.2的问题

解决微信小程序要求的TLS版本必须大于等于1.2的问题

10年职场两茫茫,35岁凄凉奈若何 335
上一篇: 测试资源 URL
下一篇: 微信小程序-2
code_stream
博客等级 码龄4年 1238粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值