js实现多页面数据同步

Vue3多页面应用中的Pinia状态共享:跨页面数据同步的实战解析 本文深入解析了Vue3多页面应用中Pinia状态共享的实战方案,解决了跨页面数据同步的痛点。通过单例模式、本地持久化存储和BroadcastChannel API三种方案对比,结合电商购物车案例,详细展示了如何实现高效的状态管理,提升多页面应用的用户体验。 阅读详情

父页面

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<input type="text" id="page">
<section>
    <div page="page1" url="page1.html">1</div>
    <div page="page2" url="page2.html">2</div>
</section>

</body>
<script>


    function openPage(url) {
        return open(url, "_blank")
    }

    let p = new Proxy({}, {
        set: function (target, key, value, receiver) {
            Reflect.set(target, key, value, receiver);
        }
    });
    p[Symbol("page0")] = window;

    document.querySelector("section").onclick = function (event) {
        let e = event || window.event;
        e.stopPropagation();
        e.preventDefault();
        let t = e.target;
        p[Symbol(t.getAttribute('page'))] = openPage(t.getAttribute('url'));
    }
    function syncPageValue(val){
        for(let key of Object.getOwnPropertySymbols(p)){
            p[key].document.querySelector("#page").value = val;
        }
    }
    page.oninput = function(e){
        syncPageValue(e.target.value)
    }
</script>

</html>

子页面1:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text" id="page">
</body>
<script>
    document.body.onload = function () {
        page.value = opener.page.value;

        page.oninput = function (e) {
            opener.syncPageValue(e.target.value);
        }

    }
</script>
</html>

 

子页面2

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<input type="text" id="page">
</body>
<script>
    document.body.onload = function () {
        page.value = opener.page.value;

        page.oninput = function (e) {
            opener.syncPageValue(e.target.value);
        }

    }
</script>
</html>

 

使用python获取同花顺免费版和同花顺远航版自选股数据用于量化交易 在做量化交易时,有时需要在盘中实时监控同花顺自选股的数量,以便灵活地自定义提醒、捕捉买卖时点等。那么,如何使用python获取同花顺自选股数据呢? 阅读详情

相关推荐

Unity抖音小游戏上架实战:从零到一,详解流程与避坑指南

本文详细介绍了Unity抖音小游戏上架的全流程,包括环境准备、SDK集成、开发者账号注册、软著申请、打包提交流程及常见问题解决方案。重点解析了抖音小游戏平台特有的配置细节和避坑技巧,帮助开发者高效完成游戏上架并优化用户体验。

weixin_33704234的博客 261

html js文本框文字列出,js实现文本框中输入文字页面中div层同步获取文本框内容的方法...

这篇文章主要介绍了js实现文本框中输入文字页面中div层同步获取文本框内容的方法,实例分析了javascript操作dom元素的技巧,需要的朋友可以参考下本文实例讲述了js实现文本框中输入文字页面中div层同步获取文本框内容的方法。分享给大家供大家参考。具体实现方法如下:复制代码 代码如下:文本框中输入文字,页面中div层同步获取文本框内容textarea{width:300px;height:1...

weixin_36185512的博客 541

高动态范围结构光三维测量技术:从多曝光融合到深度学习的演进与应用

本文深入探讨了高动态范围结构光三维测量技术的演进与应用,从传统的多曝光融合技术到深度学习驱动的创新方案。通过工业案例展示了该技术在提升测量精度和效率方面的显著优势,特别是在处理高反光、复杂表面时的突破性表现。文章还提供了针对不同工业场景的技术选型指南,帮助工程师优化三维测量解决方案。

weixin_29063979的博客 293

使用JS导出多页面数据在一张表EXCEL中

使用JS导出多页面数据在一张表EXCEL中使用前提功能代码总结 使用前提 1. 首先我的功能是:在一个总页面(一级页面)中会有数据结果。点击相应的数据结果可以跳转到相应的二级页面并根据一级的点击数据作为二级页面查询条件,把结果也查出来。三级页面与二级相似。就是这么一个总分分的页面层级关系。 2.我的导出功能作用:将一级界面所有查询到的数据导出,并将每条一级数据下所查询到的二级三级数据进行导出。 导...

w2481296的博客 1371

zemax显微镜设计

光学显微镜(Optical Microscope,简写OM)是利用光学原理,把人眼所不能分辨的微小物体放大成像,以供人们提取微细结构信息的。我这里是插入进来之后才反转,如果之前已经在目镜的单独文件夹反转过了就不用了。将目镜的焦距设定为25mm,通过缩放,然后将镜头调转过来。镜头数据中的曲率半径、物距像距都设置为变量。将镜头的焦距整体变为16.25mm。将孔径类型设置为按照光阑尺寸浮动。打开物镜的文件,选择插入镜头。由英国物理学家虎克制作。2、像空间孔径0.25。3、像面大小-0.9。

fendoudecheng的博客 8544

SI好文翻译:铜箔表面纹理对损耗的影响:一个有效的模型(一)

Paul G. Huray发表在DesignCon2010的提出铜箔表面雪球模型的论文。第一部分说明之前的铜箔表面模型只适用于5GHz以内,超过5GHz后就不再准确。

小孟同学的博客 2169

浏览器多窗口同步_JavaScript浏览器端数据存储方案之Web Storage篇

打开UC浏览器 查看更多精彩图片在做项目的过程中,我们经常遇到需要把信息存储在本地的情况,比如权限验证的token、用户信息、埋点计数、客户配置的皮肤信息或语言种类等,我们可以暂存一下避免浏览器不必要的请求和客户多余操作,给客户使用带来方便。这篇文章主要介绍localStorage和sessionStorage。HTML5中 Web Storage 的出现,主要是为了弥补使用 Cookie 作为本...

weixin_30632267的博客 1402

13、离散时间系统建模与分析

本文系统介绍了离散时间系统的建模与分析方法,涵盖连续时间模型的离散化过程、系统稳定性判断准则、输入输出模型转换方法以及有限脉冲响应和阶跃响应模型的应用。通过多个示例详细展示了不同系统在离散化过程中的特性变化,并探讨了采样间隔对系统动态特性的影响。此外,文章还分析了时间延迟的处理方法,并总结了关键知识点及操作步骤,为离散时间系统的实际应用提供了理论基础和实践指导。

2w3e4r5t6y的博客 188

多页面同步数据,同步操作,非长链接

阅读前知识普及 以下提到请谷歌的都是能直接找到的,我觉得自己搜下能加深记忆! 1、本地缓存:高级浏览器的localStorage和IE 8.0以下版本的的userData 1.1、localStorage:本地缓存,只能存储字符串,除了IE8其他容量均为5M。localStorage是跟随domain的   前面说了,这是高级浏览器的,怎么玩?请你谷歌吧。玩之前记得判断是否有的玩。 1.

菜园子 3392

Linux下的隐藏技术(文件隐藏、进程隐藏、端口隐藏、权限隐藏、命令隐藏)

这种技巧是关键记录删除,或者我们可以暴力点,比如前150行是用户的正常操作记录,150以后是攻击者操作记录。在Linux中,使用chattr命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。这种情况下我们怎么办?在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?

墨痕诉清风的博客 744

DISM进行系统修复,进度条卡在63.2%的解决方法

一时用不了软件,安装修复的时候也出现问题 DISM一直卡在63.2%,等了好久时间,直接强制退出寻找最终的解决方案

码农研究僧的博客 1万+

前端知识点之JS的同步与异步&&EventLoop

JS的同步与异步&&EventLoop JS为何是单线程的? JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准? 所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成这门语言的核心特征,将来也不会改变。 注:所

PrototypeOne的博客 304

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

基于new BroadcastChannel来实现跨页面通信

【代码】基于new BroadcastChannel来实现跨页面通信。

lwl12345678_的博客 138

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【微信小程序】用Proxy实现双向绑定(类Vuex)

自己写的,如有问题欢迎指教 [核心代码]根目录/store.js // 根目录/store.js let app = getApp() const Store = function (obj, useStates = {}) { return new Proxy(app.globalData, { set(target, key, value) { if (Array.i...

jeason_L的博客 932

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Archipelago前端技术:JavaScript数据同步与可视化

Archipelago是一个革命性的多游戏随机化框架,其前端数据同步系统为玩家提供了实时的游戏进度可视化。本文将深入解析Archipelago的JavaScript数据同步架构、核心实现机制以及可视化技术,帮助开发者理解这一复杂系统的设计理念和技术细节。 ## 数据同步架构设计 ### 核心组件架构 ```mermaid graph TB A[数据同步系统] --> B[通用数据同步...

gitblog_00370的博客 826

Ably-js:实时数据同步的JavaScript客户端库

Ably-js:实时数据同步的JavaScript客户端库 1. 项目基础介绍 Ably-js 是一个开源项目,提供了一个用于Ably实时消息服务的JavaScript客户端库。该项目使用JavaScript编程语言开发,支持Node.js、浏览器环境以及React、React Native等现代前端框架。Ably实时消息服务是一个全球性的数据同步平台,能够支持超过2.5亿设备在80多个国家实现实...

gitblog_00102的博客 562

手把手教你构建高效JS跨端通信体系:5步实现无缝数据同步

掌握JS跨端通信实现核心方法,5步构建高效数据同步体系。适用于多设备协同、实时消息推送等场景,基于WebSocket与事件总线实现双向通信,保障低延迟与高可靠性。架构清晰易扩展,值得收藏。

FastDebug的博客 978

remoteStorage.js:跨设备数据同步的利器

在当今数字化时代,数据同步和存储已成为应用程序开发中的关键需求。无论是个人用户还是企业级应用,都需要一个可靠、安全且易于集成的解决方案来管理用户数据。`remoteStorage.js` 正是这样一个开源项目,它提供了一个强大的 JavaScript 库,帮助开发者轻松实现跨设备的数据同步和存储。 ## 项目介绍 `remoteStorage.js` 是一个用于在浏览器中本地存储用户数据的 J...

gitblog_00459的博客 378

Vue 3 多页面应用终极指南:使用 Shared Worker 实现数据共享

在现代Web开发中,构建多页面应用时实现数据共享是一个常见需求。Vitesse模板作为**快速Vite + Vue开发**的终极解决方案,提供了强大的数据共享机制。🏆 在前100字的介绍中,我们已经提到了这个**Vue 3多页面应用**的核心功能——通过**Shared Worker**实现**跨页面数据同步**。 ## 什么是 Shared Worker 数据共享? Shared Work

gitblog_01071的博客 1055

实现微信小程序app.js与index.js数据同步

实现微信小程序app.js与index.js数据同步1 问题场景2 解决方式 1 问题场景 在小程序开发中常常会遇到其他页面需要使用到用户openid的情况,通常是在app.js中onLaunch函数里调用云函数获取openid,然后将其存入为globalData对象里,其他页面通过访问getApp().globalData即可访问openid。 但是当index.js需要openid时,如果直...

qq_40962521的博客 4788

At.js 与后端API集成:实现实时数据同步的完整方案

At.js 是一个强大的自动补全库,能够为你的应用添加类似 GitHub 的提及自动完成功能。通过简单的配置,你可以让用户在使用 @ 符号时获得智能提示,极大提升用户体验。🚀 ## 为什么需要后端API集成? 在实际项目中,用户数据往往存储在后端数据库中,而不是前端硬编码的静态列表。At.js 提供了强大的远程数据获取能力,让你能够轻松实现**实时数据同步**。 ### 核心API功能介绍

gitblog_00871的博客 701

使用JavaScript实现实时在线协作编辑器:从设计到实现

实现在线协作编辑器是一个复杂的任务,需要深入理解相关技术和算法。通过合理的设计和实施,我们可以使用JavaScript构建一个高效、稳定且用户体验良好的在线协作编辑器。这不仅可以满足个人和团队的需求,还可以为开发者提供宝贵的经验和技术积累。

geng1025的博客 3194

pg-logical-replication:PostgreSQL逻辑复制客户端,助力Node.js实现高效数据同步

pg-logical-replication:PostgreSQL逻辑复制客户端,助力Node.js实现高效数据同步 在现代分布式系统中,数据复制是确保数据一致性和可靠性的重要机制。pg-logical-replication 是一个Node.js客户端,它支持PostgreSQL的逻辑复制功能,允许开发者轻松地将数据变化实时同步到其他系统。下面,我们来详细了解这个项目的各个方面。 项目介绍 pg...

gitblog_00676的博客 1078

JavaScript 实现智能刷新页面的机制

在 Web 开发中,尤其是在构建多页面应用时,经常会遇到这样的需求:如果用户在一个页面中进行了某种操作(如修改了重要数据),希望其他同源页面能自动刷新以确保数据的同步和一致性。为了解决这个问题,我们可以利用浏览器的和storage事件实现页面之间的通信和刷新逻辑。

shuoguobufangqi的博客 711

实现数据同步与版本控制?不妨来试试这个8.1k star的开源库!

嗨, 大家好, 我是徐小夕.之前一直在社区分享零代码&低代码&AI多模态的技术实践, 比如H5-Dooring零码平台,Flowmix多模态可视化系列.最近在研究多人协同能力, 实现了一个基础版本的多人协同功能, 如下:多人协同首要解决的一个问题就是不同用户操作同一个文档时, 文档数据同步的问题.最近在github上发现一个比较成熟的js方案,本人亲测非常给力, 这里和大家分...

趣谈前端 1056

多设备硬件数据同步:nunchuck.js项目推荐

???? 多设备硬件数据同步:nunchuck.js项目推荐 1. 项目基础介绍与主要编程语言 nunchuck.js 是一个开源项目,旨在为移动浏览器提供多设备硬件数据同步的解决方案。该项目主要使用 JavaScript 编程语言开发,它允许开发者轻松地将移动设备的控制功能集成到桌面浏览器的 JavaScript 应用程序中,特别适用于游戏开发。 2. 项目的核心功能 nunchuck.js 的核心功...

gitblog_00919的博客 346
上一篇: web实现rtsp和rtmp协议视频直播
下一篇: Polymer2.0 iron-flex-layout
天边那朵云
博客等级 码龄10年 15粉丝 63原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值