Vue3.0 凉凉了?Vue 最黑暗的一天!

Vue3通透教程【一】Vue3现状—必然趋势? 凉哥作为 Vue 的忠诚粉丝输出过大量的 Vue 文章,应粉丝要求开始更新 Vue3 的相关技术文章,Vue 框架目前的地位大家应该都晓得,所谓三大框架使用人数最多,公司选型最多的框架,凉哥之前在文章中也提到过就是 Vue 框架之所以火起来的原因,和 Vue 框架相比其他框架的巨大优势,有兴趣的伙伴可以看一下Vue框架背后的故事。 阅读详情
AI摘要

探讨Vue3.0引入的新组件语法,包括函数式组件的组织方式,及其带来的代码结构改善,如按功能组织代码而非按类型,增强TypeScript支持及逻辑复用。

点击“开发者技术前线”,选择“星标????”

在看|星标|留言,  真爱

原来链接:https://dev.to/danielelkington/vue-s-darkest-day-3fgh

作者:Daniel Elkington  | 译者:李润泽  |  编辑:可可 本文写于2019初

vue3.0从去年放出消息很长时间了,至今正式发布过一版本, 请看:Vue 3.0 终于来了!官方凌晨开源代码。

但后续开发者没太多声音了,也可能大大和社区正在调查取舍,前端日新月异,千变万化,所以我们应该时刻接受最新信息以便及时跟进很重要啊。

一

今天,我惊讶的发现,往常积极友好的 VueJS 社区陷入了一场激烈的战争。两周前,Vue 的创建者尤雨溪发布了一个请求意见稿(RFC),用于在即将发布的 Vue 3.0 中使用基于函数的方式编写 Vue 组件。今天,一个 Reddit 上批评性的帖子和 Hacker News 上一些类似的批评性的评论,引起大批开发者涌向原本的 RFC 来表达他们的愤怒,其中一些有点侮辱性。在很多地方都有人声称:

  • 所有 Vue 代码都必须以全新的方式重写,因为现有的语法正在被移除,并且被其他东西取代;

  • 人们花在学习 Vue 上的所有时间都被浪费了,因为一切都会改变;

  • 新语法比旧的更糟糕,因为它没有强制的结构,并且会导致意大利面条式代码;

  • Vue 核心团队在没有任何咨询的情况下突然施行一个巨大的破坏性的变化;

  • Vue 要变成 React 了!

  • 不,Vue 要变成 AngularJS/Angular 了!

  • 所有 HTML 都要写在一个超长的字符串里!

看过 Reddit 上成堆的负面评论,你可能会在 RFC 页面上惊讶的发现尤雨溪的 RFC 收到的正面的表情回应的比例比负面的高得多,而且许多早期评论都是相当正面的。实际上,第一条评论就充满了溢美之词。

我就是第一个写评论的人。我碰巧收到新 RFC 的通知,马上读了一下,发现这正是我想从 Vue 3.0 得到的,而且它会给我极大的帮助,于是我在 RFC 发布 15 分钟后留下了第一条评论来表达我的谢意。我希望在这里进一步说明为什么我觉得新提案是一个如此好的主意,但首先,要回应一些批评。

我怀疑很多人在阅读了 Hacker News 或 Reddit 上有着很多误导性评论的帖子之后有点激动,他们在没有阅读原始提案的情况下就表达了自己的愤怒。尤雨溪已经更新了这个提案,通过问答的方式回应了人们的很多问题,总的来说:

  • 如果你不想重写任何代码,那么你就不需要重写——新语法是附加的,而且只要旧语法仍然被广泛使用,它在 Vue 3.0 中依然有效。就算它最终被从核心代码中移除了,也可以很容易地通过插件来使旧语法 100% 有效。

  • 学习 Vue 的时间并没有浪费——新组件语法使用的概念与你之前花时间学习的一样,其他概念,例如单文件组件、模板、scoped style 的功用完全一样。

  • 没有经过咨询,就不会改变—— RFC 就是在 咨询。新语法离发布还有很长一段路要走。

  • 不,HTML 代码不需要被写进一个超长字符串。

一个更主观的观点是:新语法不如旧语法,并且会导致结构化程度较低的代码。我希望通过一个简单的例子来说明为什么我在看到 RFC 时如此兴奋,以及为什么我觉得它更优秀,将会导致结构化 更好 的代码。

考虑一下下面的有趣组件,用户可以输入宠物的详细信息。请注意:

  • 当他们输入完宠物的名字时会显示一条信息;

  • 另一条信息会在他们选择宠物的大小后显示。

你可以在这里尝试组件的demo,也可以在这里查看使用 Vue 2.x 编写的代码(在 components/Vue2.vue)

考虑一下这个组件的 JavaScript:

export default {
  data() {
    return {
      petName: "",
      petNameTouched: false,
      petSize: "",
      petSizeTouched: false
    };
  },
  computed: {
    petNameComment: function() {
      if (this.petNameTouched) {
        return "Hello " + this.petName;
      }
      return null;
    },
    petSizeComment: function() {
      if (this.petSizeTouched) {
        switch (this.petSize) {
          case "Small":
            return "I can barely see your pet!";
          case "Medium":
            return "Your pet is pretty average.";
          case "Large":
            return "Wow, your pet is huge!";
          default:
            return null;
        }
      }
      return null;
    }
  },
  methods: {
    onPetNameBlur: function() {
      this.petNameTouched = true;
    },
    onPetSizeChange: function() {
      this.petSizeTouched = true;
    }
  }
};

二
实质上,我们有一些数据、从这些数据计算出的属性、以及 操作这些数据的方法。注意,在 Vue 2.x 中我们 没有办法把相关的东西放在一起。我们不能把 petName 数据声明放在 petNameComment 计算属性或者 onPetNameBlur 方法旁边,因为在 Vue 2.x 中,这些选项是按照类型组织的。

当然,对于像这样的小例子来说,这不太重要。但是想象一个更大的例子,它有很多功能,需要 data、 computed、 methods、甚至是一两个 watcher。目前还 没有好方法 来把相关的东西放一起!有人可能会使用诸如 Mixin 或高阶组件之类的办法,但是它们都有问题——很难辨别一个属性来自哪里,还有命名空间的冲突。(是的,在这种情况下,拆分为多个组件是可能的,但是这个类似的例子就不行)

新提案不是按照选项的类型来组织组件,而是允许我们按照实际功能来组织组件。这类似于你在电脑上整理个人文件的方式——你通常没有“表格”文件夹和“Word 文档”文件夹,相反,你可能有一个”工作“文件夹和一个”假期计划“文件夹。想象一下使用提案里的语法来编写组件(尽我所能,如果你看到了什么 bug 请告诉我):

import { state, computed } from "vue";
export default {
  setup() {
    // Pet name
    const petNameState = state({ name: "", touched: false });
    const petNameComment = computed(() => {
      if (petNameState.touched) {
        return "Hello " + petNameState.name;
      }
      return null;
    });
    const onPetNameBlur = () => {
      petNameState.touched = true;
    };

    // Pet size
    const petSizeState = state({ size: "", touched: false });
    const petSizeComment = computed(() => {
      if (petSizeState.touched) {
        switch (this.petSize) {
          case "Small":
            return "I can barely see your pet!";
          case "Medium":
            return "Your pet is pretty average.";
          case "Large":
            return "Wow, your pet is huge!";
          default:
            return null;
        }
      }
      return null;
    });
    const onPetSizeChange = () => {
      petSizeState.touched = true;
    };

    // All properties we can bind to in our template
    return {
      petName: petNameState.name,
      petNameComment,
      onPetNameBlur,
      petSize: petSizeState.size,
      petSizeComment,
      onPetSizeChange
    };
  }
};

注意:

  • 很容易把相关的东西放到一起;

  • 通过查看 setup 函数的返回值,我们可以很容易地知道模板中可以获取什么变量;

  • 我们甚至可以避免暴露模板不需要获取的内部状态(touched)。

除此之外,新语法可以有完整的 Typescript 支持,这在 Vue 2.x 基于对象的语法中很难实现。而且我们可以很轻易地把可重用的逻辑提取为可重用的函数。例如:

import { state, computed } from "vue";

function usePetName() {
  const petNameState = state({ name: "", touched: false });
  const petNameComment = computed(() => {
    if (petNameState.touched) {
      return "Hello " + petNameState.name;
    }
    return null;
  });
  const onPetNameBlur = () => {
    petNameState.touched = true;
  };
  return {
    petName: petNameState.name,
    petNameComment,
    onPetNameBlur
  };
}

function usePetSize() {
  const petSizeState = state({ size: "", touched: false });
  const petSizeComment = computed(() => {
    if (petSizeState.touched) {
      switch (this.petSize) {
        case "Small":
          return "I can barely see your pet!";
        case "Medium":
          return "Your pet is pretty average.";
        case "Large":
          return "Wow, your pet is huge!";
        default:
          return null;
      }
    }
    return null;
  });
  const onPetSizeChange = () => {
    petSizeState.touched = true;
  };
  return {
    petSize: petSizeState.size,
    petSizeComment,
    onPetSizeChange
  };
}

export default {
  setup() {
    const { petName, petNameComment, onPetNameBlur } = usePetName();
    const { petSize, petSizeComment, onPetSizeChange } = usePetSize();
    return {
      petName,
      petNameComment,
      onPetNameBlur,
      petSize,
      petSizeComment,
      onPetSizeChange
    };
  }
};

三
在 Vue 2.x 中,我经常发现自己写了个“怪兽组件”,它很难分解成更小的部分——它不能分解成其他的组件,因为很多事务基于少量状态。然而,使用提案中的语法,很容易看出大型组件的逻辑可以被分解为更小的可重用部分,在必要时移动到独立的文件里,留给你小的、易于理解的函数和组件。

这是目前为止 Vue 最黑暗的一天吗?看起来是的。一直团结追随这个项目方向的社区已经分裂了。但我希望人们能够重新审视这个提案,它没有破坏任何东西,只要他们想,仍然可以按照选项的类型来组织它们,但是可以做到更多——更清晰的代码、更简洁的代码、更有意思的库、还有完善的 Typescript 支持。

最后,在使用开源软件时,最好记住,全靠维护者投入的大量精力,你才可以免费使用它。今天的一些过分批评是他们不应该承受的。好在这些无礼的批评只是少数(尽管数量相当多),大多数人能以更礼貌的方式表达自己。

2019年6月23日更新:

我很快就写好了原文,并没有期望它能得到这样的关注。然后我意识到这个代码示例对于我想要表达的观点来说过于复杂,所以我把它简化了很多。原本的代码示例在这里,无论大家对Vue怎么看待,我依然会觉得它比起其他框架优势太少

在公众号,在后台回复关键字:666,可以获取一份程序员大礼包!

END

点个在看后再喷吧❤️

【Unity 城市建模插件】POLY-Megapolis City Pack 提供超过数百种城市建筑、道路、车辆与城市家具模型,完美适用于构建现代化城市、模拟城市游戏、都市题材冒险类游戏和开放世界项目 POLY - Megapolis City Pack 是一套风格统一、内容丰富的低多边形城市建模资源包,专为 Unity 引擎设计。该资源包提供超过数百种城市建筑、道路、车辆与城市家具模型,完美适用于构建现代化城市、模拟城市游戏、都市题材冒险类游戏和开放世界项目。无论是快速原型开发还是正式发布项目,POLY 系列都能提供高效、风格统一的解决方案。 阅读详情

相关推荐

Lmbench测试集 --- 延迟测试工具lat_mem_rd

lmbench测试集简介 以及 lat_mem_rd延迟测试工具: 如何测试、测试结果、源码分析

MonologueYY的博客 1万+

vue3 用后感

好处 相比 vue2 更快 更小,开发时搭配 vite 热编译瞬间完成。 组合式API 搭配 es6 的语法编写代码很舒适。 坏处 setup 内编写代码时,页面需要 Import 大量的依赖例如:ref、reactive、getCurrentInstance、useStore、watch、computed 、onMounted 这些频繁使用的必须函数。引起不适,其次语法也不够简洁明了。 读写 ref 的操作比普通值的更冗余,因为需要访问 .value,而在模板中又不需要加 .value,这.

ZengYue_D的博客 4368

第一章 Cheat Enginee(CE)使用指南

Cheat Engine核心功能详细说明(以植物大战僵尸为例) 教你修改单机游戏。

m0_74545731的博客 1万+

vue2停止维护,vue3成为新时代宠儿

Vue2.7正式为了解决此问题而出的过渡版本,既增加了很多新特性,有保留了所有2.x的特性,小伙伴们可以慢慢一点点迭代升级,等项目全部更新成改造新的api之后,再直接换成Vue3.0就不会一堆报错,可以做到无痛升级了。在此之后,Vue 2 在已有的分发渠道 (各类 CDN 和包管理器) 中仍然可用,但不再进行更新,包括对安全问题和浏览器兼容性问题的修复等。Vue 3 是当前 Vue 的最高主版本。Vue 2.7 也是在终止支持之前保持维护的版本,所以如果你打算留在 Vue 2,应该至少升级至 2.7。

辰俊 2944

计算机视觉研究方向有哪些?什么方向最好出论文创新点

计算机视觉(CV)是人工智能中一个活跃且应用广泛的研究领域,旨在让计算机理解和处理图像与视频。其主要研究方向包括图像分类、目标检测、图像分割、姿态估计、图像生成与重建、视频理解、三维视觉和跨模态视觉理解。这些方向不仅涉及基础理论,还紧密联系实际应用,适合发表论文和实现项目落地。为了在CV领域取得创新,建议关注跨模态学习、小样本学习、图像生成模型的控制与轻量化、视频分析以及医学图像分析等方向。此外,通过阅读顶会论文、复现SOTA方法、模型微调和数据集创新等方式,可以有效切入研究并产生有价值的成果。

OpenCVtuxiang的博客 3549

【大模型】大模型知识蒸馏 综述解读(Knowledge Distillation of Large Language Models)

知识蒸馏的(论文)方法总结。归纳了通过数据(如指令、对话、多模态)和训练方法(SFT、RL、数据增强),将复杂技能(如对齐、工具使用、多模态)蒸馏到开源模型的核心框架,附典型模型示例(如Alpaca、LLaVA)。

songxia928_928的博客 4336

为什么有人吐槽vue3.0没有vue2.0好用

vue3.0的发布的已经有三个月,三个月中作者尝试着vue3.0的完成一些模块的开发。这里分享一下vue3.0为什么有人说不太好用。 一、完全抛弃options api的作风,改用composition api的写法 了解vue2.0的都知道vue2.0是基于配置参数的风格去开发的,所有的代码都会已配置为入口,如data, method, computed, filter,watch这样的操作都是需要配置入口的,但是vue3.0完全抛弃这样的做法。采用了类似react的hooks的作风,如reactive,

xfy196的博客 1万+

【深度学习面试八股文】-- 1-5

1.样本不平衡的处理方法 ①欠采样 - 随机删除观测数量足够多的类,使得两个类别间的相对比例是显著的。虽然这种方法使用起来非常简单,但很有可能被我们删除了的数据包含着预测类的重要信息。 ②过采样 - 对于不平衡的类别,我们使用拷贝现有样本的方法随机增加观测数量。理想情况下这种方法给了我们足够的样本数,但过采样可能导致过拟合训练数据。 ③合成采样( SMOTE )-该技术要求我们用合成方法得到不平衡类别的观测,该技术与现有的使用最近邻分类方法很类似。问题在于当一个类别的观测数量极度稀少时该怎...

m0_37940804的博客 9939

Vue3.0 要凉凉了? 官方负责人的一句话,开发者瞬间坐不住了

点击“开发者技术前线”,选择“星标

开发者技术前线-DevolperFront 2267

QGis二次开发 —— 1、win10/win11搭建Vs2017-QGis3.40.12环境(附Vs2017环境效果,附全部问题解决方法)(附:Qt助手加入QGis接口说明文档)

QGis二次开发 —— 1、Windows10搭建Vs2017-QGis环境(附Vs2017环境效果)(附:Qt助手加入QGisA接口说明文档)

1362

【EMC专题】为什么芯片规格书ESD性能中看不到MM(机器放电模型)

器件级ESD包括三种类型,HBM人体放电模型、MM机械放电模型和CDM元件充电模型。但在芯片规格书中为什么只见到HBM模型与CDM模型,却没有看到MM模型的数据?

一点硬件 450

2024年Vue3通透教程【一】Vue3现状—必然趋势?_vue3要凉凉了(4),华为前端面试题及答案

凉哥作为 Vue 的忠诚粉丝输出过大量的 Vue 文章,应粉丝要求开始更新 Vue3 的相关技术文章,Vue 框架目前的地位大家应该都晓得,所谓三大框架使用人数最多,公司选型最多的框架,凉哥之前在文章中也提到过就是 Vue 框架之所以火起来的原因,和 Vue 框架相比其他框架的巨大优势,有兴趣的伙伴可以看一下Vue框架背后的故事。

2401_84619467的博客 669

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

vue3开发完项目后 用后感

setup 内编写代码时,每个页面需要 Import 大量的依赖例如:ref、reactive、getCurrentInstance、useStore、watch、computed 、onMounted 这些频繁使用的必须函数。vue3 的思想体现就是大量的 import 和 构建函数,import 让你在各个分散的文件之间反复横跳,到处出现的构建函数让人心烦意乱。读写 ref 的操作比普通值的更冗余,因为需要访问 .value,而在模板中又不需要加 .value,这无疑造成了一定程度的混乱和割裂感。

BMG-Princess 686

老版QQ原生表情gif动态

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

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

2024年Vue.js有啥新动向,听听尤雨溪咋说

本文中,我们将深入探讨尤雨溪在2024年 Vuejs Nation 大会上分享的Vue生态系统的洞察和趋势。一、引言Vue.js,作为前端开发领域的一个重要框架,一直在不断进化和扩展其功能。最近,尤雨溪在 Vuejs Nation 2024大会上分享了一系列关于Vue生态系统的见解,包括Vite 5对Vue的影响、宏(macro)、蒸汽模式(vapor mode)、常见误解、新特性或功能、未来版本...

前端达人 592

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Vue2升级到Vue3到底是不是一个正确的选择?(尤大亲自回复解读)

就在前两天,一篇反对Vue2升级到Vue3的文章在vue官方社区引起了热议。(原文链接:Vue 3 was a mistake that we should not repeat)这篇文章从实际应用角度出发,分析了Vue2到Vue3在真实项目中实操升级的痛点,提出了一个反对的声音:Vue3的升级是一个错误的选择。在一片热议中,甚至尤大都出来亲自解释并承认了一些问题。本文列举了一些原文中提到的观点以及尤大的回复。希望能给各位看官的项目升级提供更实际更全面的参考。原作者首先声明了他并没有贬低Vue3的意思。他认

tiansuiziswj的博客 1303

为什么Vue在国际上越来越没影响力?,大专生面试阿里P7居然过了

但是,如果从的角度,React 是失败的,因为更多的社区选择意味着更多的可能应用形态,语言更加不统一,团队协作更加困难这里也可以顺带解释 Vue 和 React 难易程度之争,单纯看 Vue 和 React,React 更简单,React 核心 api 就那么 6 个,useState,useMemo,useRef,useCallback,useEffect,useLayoutEffect,一个网页翻个 4,5 次就能看完,学会也就几个小时的事情。

m0_60388338的博客 1015

再见了 Vue 3,前端AI已成气候!

谁都没想到,今年前端招聘的爆发期不在金三银四,而是在5月之后!前几天跟大厂的朋友也聊起这事,他说5月只是一个开始,6月后放出的岗位会更多,但随之而来是新的岗位要求!对于前端,虽然Vue3.0、React框架技术点和面试题很重要,但现在只懂几个框架源码远远不够了。听朋友说,接下来的前端开发,将围绕「新质生产力」趋势展开,大厂面试会问到好几个新方向:企业级前端【低代码开发平台】的应用与实践(平台工具)...

zz_jesse的博客 289

Node-express项目--个人简历:login(登录)接口编写记录

/ 判断用户是否存在if (!user) {return res.status(400).json({ eamil: “用户不存在” })} else {// 判断密码是否正确res.status(200).json({ msg: “登录成功” })} else {return res.status(400).json({ password: “密码错误” })});})})测试:创建验证:在validation文件夹下新建login.js文件,用于验证登录。

2401_84437604的博客 872

再见了 React、Angular,Vue3 才是 yyds

切记一定要看到最后!!! 最近看到一篇文章上面是一作者资讯一位IT前辈,问他怎么看待工作 2 年的前端开发,月薪就高达 30k、40k 的现状。 他说,在众多编程技术中,前端算比较容易入门和提升的,可以通过页面效果,直观得到开发反馈。但学习前端,其实是一个像 DNA 结构“螺旋上升”的过程——既要反复巩固框架知识,也必须抓紧时间实践。 现在,随着前端生态的持续完善,高薪背后,今天的前端开发工程师想脱颖而出,需要具备的能力的确越来越多,入门的门槛提高了不少。 今天 我的经验是,搞前端,无外乎入门找工作和升职加

商务合作欢迎私信我 4万+

Vue 3.0 Ref-sugar 提案真的是自寻死路吗?

Vue 3.0 的两个提案,最近吸引了许多开发者的注意跟讨论。一个是 script-setup 提案,一个是 ref-sugar 提案。 对于 script-setup 提案,大部分开发者持正面态度。 对于 ref-sugar 提案,却有相当数量的开发者表达否定态度。 在 Github 相关 RFC 里[0],以及知乎问答[1]上,国内外的开发者都积极发表了意见。其中涌现了一些值得咀嚼的看法和现象。 这篇文章将选取几个有趣的片段,加以解读。 一、Vue 提案实际在做什么? 首先,我们先来看一下,Vu..

More_Action的博客 974

别让Vue3.0的谣言害了你!

点击上方“前端你别闹”,关注并“星标”关于Vue 3.0的谣言智者止于谣言?北妈在这里给大家澄清一下网络标题党谣言:最近刷屏的 Vue 3.0,其实不会是网络传言的大改版...

前端你别闹 3845

vue3+Element plus 实现暗黑模式

通过监听开关的触发状态改变暗黑模式 element plus 提供了暗黑模式的功能 如果需要暗色模式,只需在 html 上添加一个名为 的类 。但是前提需要安装element plus 并引入样式文件 并引入暗黑样式文件 然后通过判断开关的打开与关闭添加dark类 完整代码

m0_68716504的博客 2480

总结vue几种主动刷新的方法

当我们在做项目时,我们需要做当前页面的刷新来达到数据更新的目的,在此我们大概总结了几种常用的页面刷新的方法。 1.window.location.reload(),是原生JS提供的方法,this.$router.go(0):是vue路由里面的一种方法,这两种方法都可以达到页面刷新的目的,简单粗暴,但是用户体验不好,相当于按F5刷新页面,会有短暂的白屏,相当于页面的重新载入。 2.通过路由跳转的...

花落微凉梦清幽的博客 4万+

使用 Vue 3.0,你可能不再需要Vuex了

Vuex 是一个很棒的状态管理库。它很简单,并与 Vue 集成的非常好。为什么会有人放弃 Vuex ? 原因可能是即将发布的 Vue3 版本公开了底层的响应式系统,并介绍了构建应用程序的...

前端劝退师 4万+

探讨一下Vue和以前的jQuery两大框架的的区别

我是一名前端工程师,刚开始入门时接触js然后jQuery,jQuery像一把剪刀一样;简单而犀利,通常是配合一些框架完成一些静态页面开发的工作,但是个人感觉单纯的jQuery不能拯救前端工程师,因为jQuery的诸多局限性导致前端工程师的发展受到了很多的限制,只能做一些表面性的工作,并不能实现前后端分离开发。因此本章要讲的是前端三大框架之一的Vue给前端带来的不同之处。 在这里为什么要这么吹Vu...

别把代码当饭吃 1万+
上一篇: 又一个吊打百度网盘的开源神器,还是99年妹子开发的
下一篇: 我是技术总监,干嘛问我技术细节?
DevolperFront
博客等级 码龄8年 465粉丝 81原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值