前端uniapp的tab选项卡for循环切换、开通VIP实战案例【带源码/最新】
目录
- 效果图
- 图1
- 图2
- 源码
- 最后
这个案例是uniapp,同样也适用Vue项目,语法一样for循环,点击切换
效果图
图1

图2

源码
直接代码复制查看效果
<template><view class="my-helper-service-pass"><view class="tab-service-box"><view class="new-tab-item" @click="getTabIndex(index,item.supplier_grade_id)" v-for="(item,index) in grade_list" :class="{ active: currentTab === index }" ><view class="bottomline"><text class="bottomline-txt1">{{item.name}}</text><view class="bottomline-txt2">¥<text>{{item.upgrade_money}}</text></view><text class="bottomline-txt3">免{{item.reduce_commission}}元手续费</text><text class="bottomline-txt4">送{{item.message_num}}条商机提醒</text></view></view></view><view class="submit-service-box"><view class="submit-service-btn d-c-c" @click="submitServie">确认开通并支付¥{{upgrade_money}}</view></view><view class="agreement-box"><view class="agreement" @click="isRead=!isRead"><view :class="isRead?'active agreement-new':'agreement-new'"></view>同意万事直帮<text @click="xieyi('service')">《服务通服务协议》</text></view></view><!-- 尊享8大服务权益 --><view class="equity-box"><view class="equity-tit"><view class="equity-tit-lft"></view><view class="equity-tit-txt">尊享8大服务权益</view><view class="equity-tit-rgt"></view></view><view class="equity-list"><view class="equity-list-item"><!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass1.png" mode=""></image> --><text class="equity-list-item1">可以发布</text><text class="equity-list-item1">{{release_num}}个服务</text></view><view class="equity-list-item"><!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass2.png" mode=""></image> --><text class="equity-list-item1">优质万事直帮</text><text class="equity-list-item1">服务标识</text></view><view class="equity-list-item"><!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass3.png" mode=""></image> --><text class="equity-list-item1">提现</text><text class="equity-list-item1">T+0到账</text></view></view><view class="equity-list equity-list2"><view class="equity-list-item"><!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass4.png" mode=""></image> --><text class="equity-list-item1">服务项目排名</text><text class="equity-list-item1">优先展示</text></view><view class="equity-list-item"><!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass5.png" mode=""></image> --><text class="equity-list-item1">减免{{reduce_commission}}元的</text><text class="equity-list-item1">订单手续费</text></view><view class="equity-list-item"><!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass6.png" mode=""></image> --><text class="equity-list-item1">导师在线指导</text><text class="equity-list-item1">接单赚钱</text></view></view><view class="equity-list equity-list2"><view class="equity-list-item"><!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass7.png" mode=""></image> --><text class="equity-list-item1">享受平台站内和</text><text class="equity-list-item1">站外流量扶持</text></view><view class="equity-list-item"><!-- <image src="https://bk-css-image.oss-cn-beijing.aliyuncs.com/static/user/index_service/my_helper_service_pass/servicepass8.png" mode=""></image> --><text class="equity-list-item1">赠送{{message_num}}条短信</text><text class="equity-list-item1">服务商机提醒,包含对话和订单提醒</text></view></view></view><view class="block-btm"></view></view>
</template><script>export default {data() {return {currentTab: 0,removeobstaclesfrom: '', //开通需要传的参数isRead: false,// grade_list: [],supplier_grade_id: '',payPrice:'',//支付的钱数service_vip_url:'',upgrade_money:'',release_num:'',reduce_commission:'',message_num:'',grade_list:[]}},mounted() {this.getVipListData();},methods: {// VIP列表getVipListData() {let self = this;self.isloadding = true;self._get('supplier.grade/gradeList', {}, function(res) {// 实际接口返回的现在用,测试的,暂且注释,用下面第二个数据赋值// 第一个赋值// self.grade_list = res.data.grade_list;// 接口返回的数据,复制过来的let getList = [{"supplier_grade_id": 3,"name": "1个月","upgrade_money": 188,"is_default": 0,"weight": 110,"reduce_commission": 188,"release_num": 6,"message_num": 188,"time": 30,"is_delete": 0,"app_id": 10001,"create_time": "2023-09-28 13:50:54","update_time": "2023-12-29 10:25:38"},{"supplier_grade_id": 4,"name": "3个月","upgrade_money": 388,"is_default": 0,"weight": 120,"reduce_commission": 388,"release_num": 10,"message_num": 388,"time": 90,"is_delete": 0,"app_id": 10001,"create_time": "2023-10-19 15:55:03","update_time": "2023-12-29 10:25:45"},{"supplier_grade_id": 5,"name": "12个月","upgrade_money": 688,"is_default": 0,"weight": 127,"reduce_commission": 688,"release_num": 18,"message_num": 700,"time": 365,"is_delete": 0,"app_id": 10001,"create_time": "2023-12-13 09:57:32","update_time": "2023-12-29 10:37:04"}]// 第二个赋值self.grade_list = getList;// 接口赋值// self.supplier_grade_id = res.data.grade_list[0].supplier_grade_id// self.upgrade_money = res.data.grade_list[0].upgrade_money// console.log(res.data.grade_list[0].release_num,'发布数量');// console.log(res.data.grade_list[0].reduce_commission,'发布数量');// console.log(res.data.grade_list[0].message_num,'发布数量');// self.release_num = res.data.grade_list[0].release_num;// self.reduce_commission = res.data.grade_list[0].reduce_commission;// self.message_num = res.data.grade_list[0].message_num;// self.service_vip_url = res.data.service_vip_url// 模拟复制过来的接口数据赋值self.supplier_grade_id = rgetList[0].supplier_grade_idself.upgrade_money = getList[0].upgrade_moneyconsole.log(getList[0].release_num,'发布数量');console.log(getList[0].reduce_commission,'发布数量');console.log(getList[0].message_num,'发布数量');self.release_num = getList[0].release_num;self.reduce_commission = rgetList[0].reduce_commission;self.message_num = getList[0].message_num;// self.service_vip_url = res.data.service_vip_url});},getTabIndex(index,supplier_grade_id){this.currentTab = index;this.upgrade_money = this.grade_list[index].upgrade_money;this.release_num = this.grade_list[index].release_num;this.reduce_commission = this.grade_list[index].reduce_commission;this.message_num = this.grade_list[index].message_num;this.supplier_grade_id = supplier_grade_id;},xieyi() {// let url = '';// if (type == 'service') {// url = this.service;// } else {// url = this.privacy;// }let url = this.service_vip_url;uni.navigateTo({url: '/subPages/webview/webview?url=' + url});},submitServie() {let self = this;if (!self.isRead) {uni.showToast({title: '请同意并勾选协议内容',duration: 2000,icon: 'none'});return;}wx.showModal({title: '提示',content: '您确认开通吗?',success: function(o) {if (o.confirm) {uni.showLoading({title: '正在处理'});self._post('supplier.grade/deposit', {supplier_grade_id: self.supplier_grade_id,}, function(res) {// console.log(res.data.money,'返回的余额');// console.log(res.data.order_id,'开通成功');let balance = res.data.money;//余额// let payPrice = self.payPrice;//支付的钱数let payPrice = self.upgrade_money;//支付的钱数let order_id = res.data.order_iduni.navigateTo({url:`/pagesB/user/index_service/my_helper_service_pass/cashier?order_id=${order_id}&balance=${balance}&payPrice=${payPrice}`})// console.log(balance,'传余额');// console.log(payPrice,'传支付的钱数');// console.log(order_id,'传order_id');// let order_id = res.data.order_id// uni.navigateTo({// url:`/pages/user/index_service/my_helper_service_pass/cashier?order_id=' + order_id// })});}}});}}}
</script><style scoped>page {/* background: linear-gradient(180deg, #1D1F21 0%, #242629 100%); */background-color: black;}.my-helper-service-pass {background-color: black;}.tab-service-box {/* margin: 26rpx 32rpx 0 32rpx; */margin: 0 32rpx 0 32rpx;padding-top: 26rpx;box-sizing: border-box;display: flex;justify-content: space-between;}/* 下面默认未选中样式 */.new-tab-item {width: 214rpx;height: 258rpx;background: linear-gradient(180deg, #FEEFD3 0%, #E2C091 100%);border-radius: 16rpx 16rpx 16rpx 16rpx;opacity: 1;border-radius: 16rpx 16rpx 16rpx 16rpx;}.new-tab-item .bottomline {display: flex;justify-content: center;flex-direction: column;align-items: center;}.bottomline-txt1 {margin-top: 22rpx;font-size: 28rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 400;color: #231F18;line-height: 52rpx;}.bottomline-txt2 {margin-top: 8rpx;font-size: 36rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 400;color: #663211;line-height: 52rpx;}.bottomline-txt2 text {font-size: 48rpx;font-weight: 700;}.bottomline-txt3 {margin-top: 8rpx;font-size: 24rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 400;color: #2B2B2B;line-height: 52rpx;}.bottomline-txt4 {font-size: 24rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 400;color: #2B2B2B;line-height: 52rpx;}/* 下面选中样式 */.tab-service-box .active {width: 214rpx;height: 258rpx;background: #1F2123;border-radius: 16rpx 16rpx 16rpx 16rpx;opacity: 1;border: 2rpx solid;border-image: linear-gradient(180deg, rgba(164.00000542402267, 104.00000140070915, 66.00000366568565, 1), rgba(226.0000017285347, 192.00000375509262, 145.00000655651093, 1)) 2 2;display: flex;flex-direction: column;border-radius: 16rpx 16rpx 16rpx 16rpx;}.tab-service-box .active .bottomline-txt1 {margin-top: 22rpx;font-size: 28rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 400;color: #FFFFFF;line-height: 52rpx;}.tab-service-box .active .bottomline-txt2 {margin-top: 8rpx;font-size: 36rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 400;color: #E2C091;line-height: 52rpx;}.tab-service-box .active .bottomline-txt2 text {font-size: 48rpx;font-weight: 700;}.tab-service-box .active .bottomline-txt3 {margin-top: 8rpx;font-size: 24rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 400;color: #FFFFFF;line-height: 52rpx;}.tab-service-box .active .bottomline-txt4 {font-size: 24rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 400;color: #FFFFFF;line-height: 52rpx;}.submit-service-box {display: flex;justify-content: center;margin-top: 60rpx;}.submit-service-btn {width: 554rpx;height: 80rpx;background: linear-gradient(180deg, #FEF0D4 0%, #E1BF8F 100%);border-radius: 60rpx 60rpx 60rpx 60rpx;opacity: 1;font-size: 28rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 700;color: #663211;line-height: 64rpx;}.agreement-box {display: flex;justify-content: center;margin-top: 16rpx;}.agreement {font-size: 24rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 400;color: #FFFFFF;line-height: 52rpx;display: flex;align-items: center;}.agreement text {font-size: 24rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 400;color: #E1BF8F;line-height: 52rpx;}.agreement-new {border-radius: 50%;width: 28rpx;height: 28rpx;border: 2rpx solid #999999;background: #fff;position: relative;margin-right: 10rpx;box-sizing: border-box;}.agreement-new.active::after {content: '';width: 16rpx;height: 16rpx;background: linear-gradient(180deg, #FEF0D4 0%, #C19D6C 100%);border-radius: 50%;position: absolute;left: 0;top: 0;right: 0;bottom: 0;margin: auto;}.equity-box {margin: 32rpx 30rpx 0 32rpx;height: 770rpx;background: linear-gradient(117deg, #323232 0%, #1B1B1B 100%);border-radius: 20rpx 20rpx 20rpx 20rpx;opacity: 1;display: flex;flex-direction: column;/* margin-bottom: 154rpx; */}.equity-tit {display: flex;align-items: center;justify-content: center;margin-top: 28rpx !important;}.equity-tit-lft {width: 40rpx;height: 4rpx;background: linear-gradient(270deg, #E1C092 0%, rgba(216, 216, 216, 0) 100%);border-radius: 72rpx 72rpx 72rpx 72rpx;opacity: 1;margin-right: 20rpx;}.equity-tit-txt {font-size: 42rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 700;color: #F4DFBA;line-height: 64rpx;}.equity-tit-rgt {width: 40rpx;height: 4rpx;background: linear-gradient(270deg, #E1C092 0%, rgba(216, 216, 216, 0) 100%);border-radius: 72rpx 72rpx 72rpx 72rpx;opacity: 1;transform: rotate(180deg);margin-left: 20rpx;}.equity-list {margin-top: 20rpx;display: flex;/* justify-content: space-between; */justify-content: space-around;/* margin-left: 60rpx;margin-right: 66rpx; */}.equity-list-item {display: flex;flex-direction: column;justify-content: center;align-items: center;}.equity-list-item image {width: 76rpx;height: 76rpx;background: #231F18;opacity: 1;border-radius: 16rpx;margin-bottom: 12rpx;}.equity-list-item1 {font-size: 28rpx;font-family: Microsoft YaHei, Microsoft YaHei;font-weight: 400;color: #FFFFFF;line-height: 40rpx;}.equity-list2 {margin-top: 48rpx;}.block-btm {height: 154rpx;}
</style>
最后
感觉文章好的话记得点个心心和关注和收藏,有错的地方麻烦指正一下,如果需要转载,请标明出处,多谢!!!
相关文章:
前端uniapp的tab选项卡for循环切换、开通VIP实战案例【带源码/最新】
目录 效果图图1图2 源码最后 这个案例是uniapp,同样也适用Vue项目,语法一样for循环,点击切换 效果图 图1 图2 源码 直接代码复制查看效果 <template><view class"my-helper-service-pass"><view class"tab…...
【我的RUST库】get_local_info
get_local_info是一个获取linux本地信息的Rust三方库,其目标是降低获取本地linux系统信息的难度。支持银河麒麟10、UOS、鸿蒙等国产系统 项目维护:长期 当前版本0.1.4,已有功能: 1.获取活动网卡信息:网卡࿰…...
【JUC】Synchronized及JVM底层原理
Synchronized使用方式 Synchronized有三种应用方式 作用于实例方法,当前示实例加锁进入同步代码前要获得当前实例的锁,即synchronized普通同步方法,调用指令将会检查方法的ACC_SYNCHRONIZED访问标志是否被设置。 如果设置了,执行…...
用户管理第2节课--idea 2023.2 后端--实现基本数据库操作(操作user表) -- 自动生成 --【本人】
一、插件安装 1.1 搜索插件 mybatis 安装 1.2 接受安装 1.3 再次进入,说明安装好了 1.4 与鱼皮不同点 1)mybatis 版本不一致 鱼皮: 本人: 2)鱼皮需重启安装 本人不需要 1.5 【需完成 三、步骤,再来看】 …...
深入了解隧道代理HTTP的协议与技术细节
隧道代理HTTP,作为一种网络通信的桥梁技术,其背后的协议与技术细节承载着网络世界的无尽奥秘。对于技术人员而言,深入了解这些细节,不仅有助于优化网络性能,还能为网络安全提供坚实的保障。 一、隧道代理HTTP的协议基…...
系统运维-Apache服务的基础安装与使用
Apache:WEB服务器的软件 Apache HTTP是一个模块化的服务器,源于NCSAhttpd服务器,经过多次修改,成为世界使用排名第一的WEB服务器软件。 目录 HTTP HTTPS HTTP 首先安装apache yum install httpd* -y #install http 要有网站首…...
Android 相机库CameraView源码解析 (四) : 带滤镜预览
1. 前言 这段时间,在使用 natario1/CameraView 来实现带滤镜的预览、拍照、录像功能。 由于CameraView封装的比较到位,在项目前期,的确为我们节省了不少时间。 但随着项目持续深入,对于CameraView的使用进入深水区,逐…...
蜥蜴目标检测数据集VOC格式1400张
蜥蜴,一种爬行动物,以其独特的形态和习性,成为了人们关注的焦点。 蜥蜴的外观多样,体型大小不一。它们通常拥有长条的身体、四肢和尾巴,鳞片覆盖全身,这使得它们能够在各种环境中轻松移动。大多数蜥蜴拥有…...
2020年认证杯SPSSPRO杯数学建模C题(第一阶段)抗击疫情,我们能做什么全过程文档及程序
2020年认证杯SPSSPRO杯数学建模 C题 抗击疫情,我们能做什么 原题再现: 2020 年 3 月 12 日,世界卫生组织(WHO)宣布,席卷全球的冠状病毒引发的病毒性肺炎(COVID-19)是一种大流行病。…...
Java技术栈 —— Hadoop入门(一)
Java技术栈 —— Hadoop入门(一) 一、Hadoop第一印象二、安装Hadoop三、Hadoop解析3.1 Hadoop生态介绍3.1.1 MapReduce - 核心组件3.1.2 HDFS - 核心组件3.1.3 YARN - 核心组件3.1.4 其它组件3.1.4.1 HBase3.1.4.2 Hive3.1.4.3 Spark 一、Hadoop第一印象…...
Shell脚本小游戏:石头剪刀布
脚本代码: #!/bin/bash echo "接下来的是石头剪刀布的游戏" echo "定义1:包子;2:剪刀;3:布" echo "------------------------------" NUMecho $[RANDOM%31] #1包子 #2剪刀…...
Windows10系统的音频不可用,使用疑难解答后提示【 一个或多个音频服务未运行】
一、问题描述 打开电脑,发现电脑右下角的音频图标显示为X(即不可用,无法播放声音),使用音频自带的【声音问题疑难解答】(选中音频图标,点击鼠标右键,然后选择“声音问题疑难解答(T)”…...
Unity | 渡鸦避难所-5 | 角色和摄像机之间的遮挡物半透明
1 前言 角色在地图上移动到岩石后面时,完全被岩石遮挡,玩家只能看到岩石。这逻辑看起来没问题,但并不是玩家想要看到的画面,玩家更希望关注角色的状态 为了避免角色被遮挡,可以使用 Cinemachine Collider 功能&#x…...
ResNet论文阅读和简单实现
论文:https://arxiv.org/pdf/1512.03385.pdf Deep Residual Learning for Image Recognition 本模块主要是阅读论文,会做简单的翻译(至少满足我自己能看明白)。 Introduction 由上图可见,在20层和56层的网络上训练的…...
QT上位机开发(数据库sqlite编程)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 编写软件的时候,如果用户的数据比较少,那么用json保存是非常方便的。但是一旦数据量大了之后,建议还是用数据库…...
在ARMv8中aarch64与aarch32切换
需求描述 在项目调试过程中,由于内存或磁盘空间不足需要将系统从aarch64切换到aarch32的运行状态去执行,接下来记录cortexA53的调试过程。 相关寄存器描述 ARM64: SPSR_EL3 N (Negative):表示运算结果的最高位,用于指示运算结果是否为负数。 Z (Zero):表示运算结果是否…...
拧巴的 tcp
本来想说说 tcp fastopen(tfo),但没什么意义,看 rfc7413 好了,还是 tcp 的惯常套路,引入一个新特性,解决了某个问题,带来一些新问题,然后就是各种 tradeoff,哪里适用哪里不适用。久而…...
java servlet 学生管理系统myeclipse开发oracle数据库BS模式java编程网
一、源码特点 java servlet 学生管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助servletbeandao (mvc模式开发),系统具有完整的源代码和数据库,开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Oracle 10g…...
使用buildx构建多架构镜像
使用buildx构建多架构镜像 1. 前置条件 docker 19.03以上版本 ubuntu 22.04 2. 安装相关组件 2.1 安装docker sudo apt-get updatesudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-commoncurl -fsSL https://mirrors.…...
Crow:run的流程4 准备接收http请求
完成tcp的accept后,下一步需要接收tcp的数据,同时完成http的分析 class Connection { public:void start(){adaptor_.start([this](const asio::error_code& ec) {if (!ec){start_deadline();parser_.clear();do_read();}else{CROW_LOG_ERROR << "Could not …...
配电箱国家标准最新解读:GB/T 7251系列关键更新与合规要点
作为低压配电系统的核心设备,配电箱的质量直接关乎电力安全与人民生命财产安全。近年来,GB/T 7251《低压成套开关设备和控制设备》系列标准持续迭代升级,为行业规范化发展提供了重要技术支撑。本文从行业观察视角,系统梳理该系列标…...
LVGL字体优化实战:如何将中文字库放到外部SPI Flash并动态加载(节省内部RAM)
LVGL外部SPI Flash字库优化实战:RAM节省与性能平衡的艺术 在嵌入式UI开发中,中文显示一直是资源受限设备的痛点。当STM32F4系列芯片遇到需要显示多语言菜单的智能家居面板,或是工业HMI设备需要展示复杂参数时,传统的内部字库方案往…...
Hive 数据库 增删改 完整操作指南
Hive 是基于 Hadoop 的数据仓库,不支持传统数据库的行级事务(标准 Hive),核心用于离线数据分析。Hive 对数据库(Database) 的操作只有 CREATE(增)、DROP(删)、…...
Installing the classic Jupyter Notebook interface
简单来说,Jupyter Notebook 是一个基于网页的编程环境,让你可以: 边写代码边运行:可以一次只运行一小段代码,而不是整个程序 混合显示:代码、运行结果(包括图表、图片)、文字说明可…...
Vue3-DateTime-Picker:企业级日期时间选择器的5大架构创新与实战指南
Vue3-DateTime-Picker:企业级日期时间选择器的5大架构创新与实战指南 【免费下载链接】vue3-date-time-picker Datepicker component for Vue 3 项目地址: https://gitcode.com/gh_mirrors/vu/vue3-date-time-picker Vue3-DateTime-Picker是一款基于Vue 3 Co…...
短路保护+过流保护+过热保护:MP9447GL-Z的车规级电源可靠性分析
MP9447GL-Z:36V/5A同步降压转换器的高密度电源方案在工业设备、通信基站以及消费电子电源适配器等应用中,电源管理单元需要同时满足宽输入电压、大输出电流和高转换效率的多重要求。传统的分立方案往往需要在PCB面积、BOM成本和散热设计之间做出权衡。MP…...
长期使用Taotoken聚合服务对开发者日常工作效率的积极影响观察
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken聚合服务对开发者日常工作效率的积极影响观察 1. 引言:从分散管理到统一接入的转变 在模型应用开发过…...
明日方舟游戏素材宝库:8000+高清美术资源免费获取终极指南
明日方舟游戏素材宝库:8000高清美术资源免费获取终极指南 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource 你是否曾为寻找高质量的游戏美术素材而烦恼?无论是角色…...
保姆级教程:手把手教你为NPM账号开启2FA双重认证(附Microsoft Authenticator配置)
从零到精通:NPM账号2FA双重认证实战指南 最近NPM包被劫持的事件频发,让不少开发者开始重新审视账号安全的重要性。作为JavaScript生态的核心基础设施,NPM账号一旦被盗,不仅可能导致私有包泄露,更可能危及依赖这些包的所…...
CircuitPython库管理全攻略:从手动安装到CircUp工具实战
1. 项目概述:CircuitPython库管理的核心价值 如果你刚开始接触CircuitPython,可能会被一个看似简单的问题绊住:为什么我复制了别人的代码,板子却毫无反应,或者串口里报了一堆看不懂的错误?十有八九&#x…...
