两周掌握Vue3(五):自定义指令、路由、ajax

PHP写的表白小站源码,带动态效果、AJAX交互和数据库支持 直接能跑的PHP表白网页源码,前端用HTML+CSS+JS实现响应式布局,有鼠标跟随特效(mous.jpg)、动态菜单(menu.php)、首页(index.php)、内容加载页(content.php),还有爱心动画(main.js、i.js)和配套样式(i.css);后端用PHP处理逻辑,ajax-function.php、content-function.php、showlove.php、function.php负责AJAX响应、内容渲染和业务控制,conf.php统一管理配置,404.php定制错误 阅读详情

代码仓库:跳转
当前分支:05

一、自定义指令

自定义指令是Vue.js框架提供的一个非常强大的特性,它允许开发者直接操作DOM,扩展Vue.js的能力。自定义指令的主要作用包括:

  1. 封装常用操作:当你发现在多个组件中需要重复执行相同的DOM操作时,可以将这些操作封装成一个自定义指令,以提高代码的复用性和可维护性。

  2. 与第三方库集成:有时候你可能需要与第三方库(如图表库、地图库等)进行集成,自定义指令可以帮助你在Vue组件中使用这些库,并提供统一的接口。

  3. 访问底层DOM:有些特定的DOM操作可能需要直接访问底层的DOM元素,而不适合放在组件的模板中,自定义指令可以提供一个更灵活的方式来处理这些操作。

  4. 解耦视图层和业务逻辑:有些操作可能更适合放在指令中而不是组件中,这样可以更好地将视图层和业务逻辑解耦,使代码更清晰易懂。

总的来说,自定义指令为开发者提供了一种扩展Vue.js功能的方式,使得在处理DOM操作和与第三方库集成时更加灵活和便捷。

1.创建和使用自定义指令

我们可以在任何Vue文件中创建自定义指令。在这个例子中,我们将创建一个简单的自定义指令,用于将元素的背景颜色设置为红色。

main.js:

// main.js
import { createApp } from 'vue';
import App from './App.vue';

const app = createApp(App);

app.directive('red-color', {
  mounted(el) {
    el.style.backgroundColor = 'red';
  }
});

app.mount('#app');
  1. 在组件中使用自定义指令:

App.vue:

<template>
  <div v-red-color>这个div的背景颜色会变成红色</div>
</template>

<script>
export default {
  name: 'App'
}
</script>
  • 效果:

在这里插入图片描述

2.钩子函数

  • 指令定义函数提供了几个钩子函数:

    created : 在绑定元素的属性或事件监听器被应用之前调用。
    beforeMount:在被绑定元素挂载之前调用。
    mounted:在被绑定元素挂载后调用。
    beforeUpdate:在包含组件的 VNode 更新之前调用,但可能在其子 VNode 更新之前调用。
    updated:在包含组件的 VNode 及其子组件的 VNode 更新后调用。
    beforeUnmount:在卸载绑定元素之前调用。
    unmounted:在卸载绑定元素后调用。

这些钩子函数允许在自定义指令的生命周期中执行相应的操作,例如在元素挂载前后进行初始化和清理、在元素更新前后执行特定逻辑、在解绑时进行清理等。通过合理使用这些钩子函数,可以更好地控制自定义指令的行为,并与Vue 3的生命周期进行交互。

  • 参数: 在Vue 3中,自定义指令的钩子函数可以接收以下参数:
    el:指令所绑定的元素,可以用来直接操作DOM。
    binding:一个对象,包含指令的信息。包括name、value、oldValue、arg、modifiers等属性。
    vnode:Vue 编译生成的虚拟节点。
    prevVNode:上一个虚拟节点,仅在 beforeUpdate 和 updated 钩子中可用。

3.使用参数

假设我们要创建一个自定义指令,当鼠标悬停在元素上时,元素的背景颜色会变成红色,当鼠标移出时,背景颜色会恢复。我们将使用自定义指令的钩子函数来实现这个功能。

  • main.js
import { createApp } from 'vue'
import App from './App.vue'

const app = createApp(App)

app.directive('hover-color', {
  beforeMount(el, binding) {
    el.style.transition = 'background-color 0.3s';
    el.style.backgroundColor = binding.value;
  },
  mounted(el, binding) {
    el.addEventListener('mouseenter', () => {
      el.style.backgroundColor = 'red';
    });
    el.addEventListener('mouseleave', () => {
      el.style.backgroundColor = binding.value;
    });
  }
});

app.mount('#app')

  • App.vue:
<template>
  <div v-hover-color="'lightblue'" style="width: 200px; height: 200px;">
    鼠标悬停我看看背景色会变成什么颜色
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

  • 效果:

在这里插入图片描述

鼠标悬停:

在这里插入图片描述

二、路由

要想在vue中使用路由,第一步需要安装react-router:

npm install vue-router

1.创建一个router实例

router.js

import { createRouter, createWebHistory } from 'vue-router';
import MyHome from './components/MyHome.vue';
import MyAbout from './components/MyAbout.vue';

const routes = [
  { path: '/', component: MyHome },
  { path: '/about', component: MyAbout }
];

const router = createRouter({
  history: createWebHistory(),
  routes
});

export default router;

2.在components目录中创建组件

MyHome.vue

<template>
  <div class="home">
    <h1>{{ msg }}</h1>
  </div>
</template>

<script>
export default {
  name: 'MyHome',
  data() {
    return {
      msg: 'Home'
    };
  }
};
</script>

MyAbout.vue

<!-- components/HelloWorld.vue -->
<template>
  <div class="about">
    <h1>{{ msg }}</h1>
  </div>
</template>

<script>
export default {
  name: 'MyAbout',
  data() {
    return {
      msg: 'About'
    };
  }
};
</script>

3.将路由实例挂载到应用

main.js

// main.js
import { createApp } from 'vue';
import App from './App.vue';
import router from './router';

const app = createApp(App);
app.use(router);
app.mount('#app');

4.使用路由

App.vue

<template>
  <div>
    <router-link to="/">Home</router-link>
    <router-link to="/about">About</router-link>
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

  • 效果:

在这里插入图片描述

三、Ajax

Ajax(Asynchronous JavaScript and XML)是一种用于创建交互式网页应用的技术。它通过在不重新加载整个页面的情况下,利用 JavaScript 发起 HTTP 请求并接收服务器返回的数据,从而实现页面的局部刷新和动态更新。

Ajax 技术的核心是通过 XMLHttpRequest 对象来实现异步通信。通过使用 Ajax,网页可以在后台与服务器进行数据交换,从而实现动态更新页面内容的功能。这种技术使得用户能够在不刷新整个页面的情况下,获取最新的数据并更新页面的部分内容,从而提升了用户体验。

Ajax 技术通常用于实现以下功能:

  1. 动态加载数据:例如在网页中实现无刷新加载新内容。
  2. 表单验证:通过 Ajax 可以在用户输入数据后实时验证数据的有效性。
  3. 实时搜索:在用户输入搜索关键词时,实时向服务器请求数据并展示搜索结果。

总的来说,Ajax 技术是一种利用 JavaScript 和 XMLHttpRequest 对象来实现异步通信的技术,它使得网页能够实现动态更新内容的功能,提升了用户体验。

  • 首先,安装依赖:
npm install axios
  • 代码示例:
// 发起GET请求
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });

// 发起POST请求
axios.post('https://api.example.com/postData', { data: 'example' })
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error(error);
  });
ASP.NET Core MVC项目里直接跑Vue组件的开箱即用模板 这个资源包提供一个无需Webpack、Vite等构建工具的轻量级集成方案,Vue.js通过script标签从CDN或本地wwwroot/js加载,在MVC视图中直接使用v-model、v-on、组件注册等基础能力。Razor页面(如Index.cshtml)保留完整服务端渲染逻辑,同时嵌入Vue实例管理交互区域,支持数据双向绑定、事件响应、父子组件通信等常见前端需求。项目结构遵循标准ASP.NET Core MVC规范:Controllers处理路由与模型返回,Views混合Razor语法和Vue模板,Mo 阅读详情

相关推荐

基于Vue 3的智能会议室预约系统前端完整方案

在数字化办公场景中,资源的高效利用离不开清晰的前端交互和严谨的状态管理。Vue 3 组合式 API 配合 Vite 的极速构建,让中后台系统的开发体验大幅提升,尤其在处理多步骤流程、动态权限与实时数据联动时,代码结构更加直观。以企业内部最常见的会议室管理为例,一个成熟的预约系统需要覆盖时段冲突检测、审批流转、签到校验和统计报表等核心环节。通过 Pinia 统一管理预约状态与用户信息,再结合 Element Plus 组件库构建操作界面,可以快速搭建出可独立运行的完整前端方案。这类实践不仅适用于行政资源调度,

weixin_29009669的博客 251

Vue3自定义指令

只能在当前组件使用的指令成为局部自定义指令。

最是人间留不住,朱颜辞镜花辞树。 1106

轻量后台模板:Bootstrap搭建+iframe标签页式导航,支持多模块独立加载与关闭

这个后台界面模板用Bootstrap实现响应式布局,核心特点是用iframe做页面局部加载,点开新功能不刷新整个页面。所有操作模块都以标签页形式展开,比如日历、基础组件、启动页、表单、图表等,每个tab可单独关闭,也能一键关闭其他或全部标签。配套资源很全:除了多个现成HTML页面(calendar.html、widgets.html、starter.html等),还集成了jQuery插件(DataTables、timepicker、input-mask、jvectormap)、富文本编辑器bootstrap

y7z8a的博客 291

vue3:自定义指令

在Vue中,诸如v-if、v-for、v-on等等被称之为内置指令,它们都是以v-开头的,我们无需注册即可在全局使用它们,内置指令提供了极大的方便给我们,比如v-for指令可以让我们快速循环出很多dom元素。在指令需要附加在普通的 v-on 事件监听器调用前的事件监听器中时,这很有用。因为vue3可以有多个根节点,当有一个根节点时使用指令没有问题,如果有多个根节点使用指令回报错,建议多个根节点可以在组件内部使用指令。value:传递给指令的值。顾名思义,自己定义自定义指令的方法,实现我们需要的指令功能。

snow的博客 1万+

STM32L151C8T6低功耗实战:RTC闹钟唤醒停机模式的配置与优化

本文详细介绍了如何在STM32L151C8T6微控制器上配置与优化RTC闹钟唤醒停机模式,以实现极致的低功耗设计。文章从核心原理出发,结合STM32CubeMX配置实战,深入讲解了进入停机模式前的关键准备工作、唤醒后的系统恢复流程,并分享了将功耗降至个位数微安级的深度优化技巧与常见问题解决方案。

weixin_29166013的博客 301

UniApp X 网络请求避坑指南:从 JS 到 UTS 的 JSON 数据处理全解析

摘要:UniAppX开发中处理JSON数据时,UTS强类型特性要求开发者改变JS习惯。本文对比两种主流方案:1)UTSJSONObject通过keypath访问数据,兼容JS但缺乏类型提示;2)type+泛型方案,通过定义数据类型实现强类型校验和智能提示,推荐用于固定数据结构。文章详细演示了两种方式的具体实现、转换方法及实战案例,并提供了类型定义技巧和注意事项,帮助开发者编写更稳定高效的跨平台应用。

归梦工作室 2789

Vue(3)-vue中的Ajax、Vuex、路由及UI组件库

本系列笔记参考尚硅谷vue2vue3教学视频,笔记完全参考老师的笔记,仅作为个人学习及阅读使用

m0_43416592的博客 2027

几何修复_ANSYS流体分析:几何前处理

建模及几何处理工具非常多,选择起来让人眼花缭乱。对于仿真而言,高效的对几何进行清理及生成符合仿真要求的几何至关重要。ANSYS SpaceClaim Direct Modeler是基于直接建模思想的新一代3D高效率建模和几何编辑修补软件。SCDM提供了当今最快速、最富有创意的直接建模解决方案。由于它的直接建模能力即使对于导入的其它3D模型(如catia、proe、solid works创建的几何)...

weixin_35778830的博客 2416

vue3 ajax

这种方式可以使你的 HTTP 请求逻辑更加清晰和集中,更容易维护和复用。记得根据你的实际需求调整上面的代码,例如不同的 baseURL、请求头、错误处理方式等。请确保根据你的具体需求调整这些步骤,例如,处理不同类型的请求、不同的端点以及不同的响应类型。

翱翔-蓝天 1586

手把手教你用UNet实现轨道缺陷检测(附RSDDs数据集下载与完整代码)

本文详细介绍了如何使用UNet模型实现轨道缺陷检测,包括RSDDs数据集的下载与处理、UNet架构的改进与优化、训练策略设计以及模型部署的全流程。通过实战案例,展示了如何利用深度学习技术提升工业质检效率,特别适合从事工业缺陷检测和图像处理的开发者参考。

dapp9builder的博客 749

[STC32G144K246入门第三步]驱动串口收发(接收不定长数据)

本文介绍了STC32G144K246单片机的串口功能配置与使用。该芯片具有8组独立USART,支持异步/同步模式,各串口可独立配置波特率并支持DMA传输。重点讲解了串口寄存器配置方法,包括引脚设置、波特率计算和中断处理。特别指出RX引脚需配置为开漏或准双向口以避免接收乱码。还介绍了通过定时器实现不定长数据接收的技术方案,并提供了完整的初始化代码和中断处理函数示例。文中包含串口时序图、寄存器配置表等实用参考信息,适合嵌入式开发者快速上手多串口应用开发。

sinat_58149788的博客 194

axios学习总结

axios基本用法(JS HTTP库/Ajax库)特征 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http 请求 支持 Promise API 拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换 JSON 数据 客户端支持防御 XSRF 安装和引用首先就是引入axios,如果你使用es6,只需要安装axios模块之后:import axios from 'ax

越努力,越幸运! 4200

SAP VC 可配置物料超级BOM简介

在有些业务中比如:汽车、笔记本、电脑、电梯等产品中,其中组成产品的型号个框架是确认的 ,但是框架内部的BOM是可变的,在客户下销售订单的时候,选取对应的组件 ,让后通过MRP的计算优生产线对这样的销售订单提供生产。这个时候我们需要选择我们需要的内存和硬盘的型号,还记得我们前面创建的特征值对应的吗,A对应的8G、B对应16G、X对应1T硬盘、Y对应2T硬盘,这里我们填写对应的值,我们这里选择16G的内存和2T的硬盘,B和Y。3、当我们选择了可配置物料的生产模式时,基本上就选择了按单生产的生产模式了。

我小时候很黑的博客 1万+

react第五天生命周期、路由、动态路由及美团案例

回顾 React(js库) 创建组件的方式(函数创建、类的创建) 创建方式的区别和联系(函数创建方式没有生命周期,函数创建方式没有state,函数方式在传值的时候接收用的是 props相反类的创建方式接收传值数据的时候 用的是this.props) state(setState) props 组件通信(父子、子父) 未来两周的安排 react(生命周期、路由、stylus、UI库、状态管理...

Little_Fishs的博客 565

操作系统实验四 进程运行轨迹的跟踪与统计(哈工大李治军)

实验4 进程运行轨迹的跟踪与统计 实验目的 掌握 Linux 下的多进程编程技术; 通过对进程运行轨迹的跟踪来形象化进程的概念; 在进程运行轨迹跟踪的基础上进行相应的数据统计,从而能对进程调度算法进行实际的量化评价,更进一步加深对调度和调度算法的理解,获得能在实际操作系统上对调度算法进行实验数据对比的直接经验。 实验内容 进程从创建(Linux 下调用 fork())到结束的整个过程就是进程的生命期,进程在其生命期中的运行轨迹实际上就表现为进程状态的多次切换,如进程创建以后会成为就绪态;当该进程被调度以

leoabcd12的博客 4652

DDPM代码详细解读(2):Unet结构、正向和逆向过程、IS和FID测试、EMA优化

Diffusion Models专栏文章汇总:入门与实战 前言:大部分DDPM相关的论文代码都是基于《Denoising Diffusion Probabilistic Models》和《Diffusion Models Beat GANs on Image Synthesis》贡献代码基础上小改动的。官方的DDPM是tensorflow TPU版本,暂时没有GPU的版本。上一篇文章介绍了数据集加载,超参数的含义、关键参数的计算方法等,这一篇重点解读一下网络结构。 目录 EMA优化 训练目标.

沉迷单车的追风少年 1万+

react第四天美团案例之基本路由、动态路由、编程式导航

day21笔记 回顾 上周结束了vue(后台管理项目) React(js库) 创建组件的方式(函数创建、类的创建) 创建方式的区别和联系(函数创建方式没有生命周期,函数创建方式没有state,函数方式在传值的时候接收用的是 props相反类的创建方式接收传值数据的时候 用的是this.props) state(setState) props 组件通信(父子、子父) 未来两周的安排 reac...

Little_Fishs的博客 438

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

VUE学习记录

   在尝试了解了React和Vue之后,还是选择了Vue作为开发前端web的单页应用的框架,主要是vue相对来说还简单容易理解一些。通过断断续续的两周学习和准备,现在基本对vue的开发有了一个比较深入的认识。Vue最核心的魅力就在于双向绑定,可以让我们专注于数据,而不用管dom。之所这样说,是因为,只要数据改变了,页面就实时的调整改变了,这也之前使用jquery进行dom操作完全是两个概念。我觉...

凉茶冰 611

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

2024年Web前端最新凭借2024最新前端面试题精选大全 ,让你成功混圈阿里字节腾讯,前端面试基础

javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

2401_84617533的博客 661

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Ruby‘s Louvre:jQuery时代的轻量MVVM响应式框架解析

MVVM是一种将数据模型、视图与控制器解耦的前端架构模式,其核心原理是通过数据劫持(如Object.defineProperty)建立数据与DOM的自动同步机制。这种响应式更新能力不仅构成现代框架(Vue/React)的技术底座,更在IE8等受限环境中催生了沙箱式模板、指令驱动和无构建依赖等务实设计。它不追求功能堆砌,而是聚焦于状态唯一性、更新可追溯性与组件可声明性,广泛应用于政府内网、金融系统等强兼容性场景,尤其适合老系统维护、技术演进研究及响应式底层原理学习。

dejz8829的专栏 505

长文预警,凭借2024最新前端面试题精选大全 ,成功混圈阿里字节腾讯_群接龙前端面试(1)

这不止是一份面试清单,更是一种“被期望的责任”,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的“钥匙”,所以上面的每道选题都是结合我自身的经验,于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再校对好答案和格式做出来的,面试的答案也是再三斟酌,生怕误人子弟是小,影响他人的“仕途”才是大过,所以如有纰漏,还请读者朋友们在评论区指正。合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!12. jQuery 里的 each() 是什么函数?

2401_84544752的博客 1078

长文预警,凭借2024最新前端面试题精选大全 ,成功混圈阿里字节腾讯_群接龙前端面试

这不止是一份面试清单,更是一种“被期望的责任”,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的“钥匙”,所以上面的每道选题都是结合我自身的经验,于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再校对好答案和格式做出来的,面试的答案也是再三斟酌,生怕误人子弟是小,影响他人的“仕途”才是大过,所以如有纰漏,还请读者朋友们在评论区指正。恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。

2401_84544752的博客 871

ASP.NET MVC 4架构演进解析:约定优于配置与职责边界的工程实践

ASP.NET MVC 是微软早期推动Web开发标准化的关键框架,其核心理念‘约定优于配置’深刻影响了后续.NET生态的架构设计。MVC 4作为承前启后的里程碑版本,首次系统性实现了依赖注入抽象、Web API分离、资源打包(Bundling)、移动视图适配等关键能力,本质上是一次服务端与客户端职责边界显性化的架构实践。它不仅奠定了现代.NET Web应用的分层基础,更在路由匹配优化、Model Binding可扩展性、View Engine测试友好性等方面提供了可复用的工程范式。对于维护遗留系统或理解AS

as2886089的博客 414

前端八股文面试攻略:事件循环、闭包与框架原理全拆解

在前端技术面试中,八股文常被看作死记硬背的代名词,但本质上它考察的是对语言底层原理和工程实践的真正理解。从JavaScript的事件循环、闭包、原型链,到浏览器渲染机制、网络协议,再到Vue响应式原理与React虚拟DOM diff算法,这些核心概念构成了前端技术能力的天花板。理解宏任务与微任务的调度逻辑,掌握闭包的应用与内存管理,理清this绑定规则,都能帮助开发者应对线上白屏、内存飙升、列表卡顿等真实工程问题。框架层面,虚拟DOM通过最小化真实DOM操作来提升渲染性能,diff算法与key的复用策略则是

weixin_34277853的博客 373

SSM框架实战:水果电商系统设计与防超卖实现

SSM框架(Spring+SpringMVC+MyBatis)是Java企业级开发的核心技术栈,通过分层架构实现业务逻辑解耦。其核心原理在于Spring的IoC容器管理对象生命周期,MyBatis的SQL映射简化数据库操作,结合SpringMVC的请求路由机制形成完整MVC体系。在电商等高并发场景中,SSM框架配合乐观锁机制能有效解决库存超卖问题,例如通过版本号控制实现并发安全的数据更新。本文以水果销售系统为例,详解如何利用策略模式处理订单状态流转,使用Caffeine+Redis构建二级缓存体系,并分享日

weixin_33714884的博客 1977

毕业一年左右的前端妹子面经总结

前言 嗯(emmmm),这篇面经我两周在SegmentFault上写过啦,现在在掘金上再更新一下会不会有人想揍我:你看又来了又来了~因为答应了一位技术经理不能食言在掘金上也写写文章,所以如果看过的那就再看一次吧(我已经推迟一天啦,摸摸自己的小肚子,周末吃喝玩乐+学习了),但是我记得要更新,你看是吧!作为一位去年才毕业的前端妹子来说,其实还是个技术小白啦,近几年还是想在技术上能有一个很大的提升,奔着...

weixin_34187822的博客 355
上一篇: 两周掌握Vue3(四):计算属性、监听属性、事件处理
下一篇: 解决系统开发中的跨域问题:CORS、JSONP、Nginx
TracyCoder123
博客等级 码龄8年 1万+粉丝 226原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TracyCoder123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值