webpack学习

DB文件在编程中的作用及示例代码 通过使用DB文件,我们可以实现数据的持久化存储,并能够高效地进行数据的增删改查操作。在本文中,我们以SQLite数据库为例,演示了如何使用Python语言创建和操作DB文件的示例代码。在实际的编程中,我们可以根据具体的需求和使用的数据库系统来进行更复杂的操作和优化。通过使用DB文件,我们可以实现数据的持久化存储,确保数据在程序关闭后也能被保留,并且能够高效地进行数据检索和更新。在本文中,我们将探讨DB文件的作用,并提供一些示例代码展示如何在编程中使用DB文件。上述代码中,我们使用SQLite提供的。 阅读详情

1.webpack
项目-----》装载器------》插件------》浏览器
loader:将浏览器不能识别的文件转化为html,js,css
插件:对文件进行处理像压缩,合并等
入口:
出口:


创建webpack
webpack init -y

webpack零配置打包
npx webpack
只打包js文件生成main.js

webpack指定配置
默认入口:  src/index.js
默认出口:  dist/main.js

插件
html-webpack-plugin:
  plugins:[
    new htmlWebpackPlugin({
      template:'./src/index.html',//指定输出得文件模板
      filename:'main.html'//指定输出的文件名
    })
  ]

  webpack-dev-server:
  配置:
   "scripts": {
    "dev":"webpack serve",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

在webpack.config.js中配置

  使用命令 npm run dev

  webpack默认只支持js,不支持css
  需要css-loader  
  style-loader: 将css直接添加到html的script标签中
  装载器的执行顺序从右到左   
  module:{
    rules:[
      {
        test:/\.css/,
        use:['style-loader','css-loader']

      }
    ]
  }

  加载多个css文件在index.css中可以导入别的样式文件也能打包
  @import './color.css';
  body{
    background: red;
  }


less-loader
 {
    test:/\.less/,
    use:['style-loader','css-loader','less-loader']

  }

@import './color.css';
@import './index.less';
body{
  background: red;
}

抽取css作为一个文件 css文件抽取器
插件: mini-css-extract-plugin

使用:
const cssMiniExtractPlugin = require('mini-css-extract-plugin')
 plugins:[
    new htmlWebpackPlugin({
      template:'./src/index.html',//指定输出得文件模板
      filename:'index.html'//指定输出的文件名,最好使用index.html,这样运行的时候可以直接找到index.html

    }),
    new cssMiniExtractPlugin({
      filename:'index.css'
    })
  ],
 module:{
    rules:[
      {
        test:/\.css/,
        // use:['style-loader','css-loader'] 使用cssMiniExtractPlugin插件将css抽出
        use:[cssMiniExtractPlugin.loader,'css-loader']

      },
      {
        test:/\.less/,
        use:[cssMiniExtractPlugin.loader,'css-loader','less-loader']

      }
    ]
  }

  mode改为production,打包的时候会把js压缩,css没有被压缩
  css压缩插件  optimize-css-assets-webpack-plugin CssMinimizerWebpackPlugin
  css-minimizer-webpack-plugin插件更新使用方法相同
使用:const OptCssAssetsWebpackPlugin =require('optimize-css-assets-webpack-plugin')
 optimization:{
    minimizer:[new OptCssAssetsWebpackPlugin()]
  },
  
  配置了css压缩后js压缩会失效,需要指定js压缩插件
terser-webpack-plugin
配置:  
optimization:{
    minimizer:[new OptCssAssetsWebpackPlugin(),new terserWebpackPlugin()]
  },


webpack5支持部分es6,不支持es7
babel是一个javascript编译器
使用装载器   babel-loader
安装插件:npm install -D babel-loader @babel/core @babel/preset-env @babel/plugin-proposal-decorators --legacy-peer-deps
配置:{
        test:/\.js$/,
        use:{
          loader:'babel-loader',
          options:{
            presets:[
              "@babel/preset-env"
            ],
          }
        }

      }


js模块化:

  commonjs  :
  a.js
  let c = 'a'   
  module.exports = {
    c
  }
  加载:
  let c = require('./a.js');


  es6导出
  a.js
  const a = 444
  export default a
  加载
  import a from './a.js'

tree shaking 树摇   在生产模式中启用
将没有使用的代码在打包中去掉(去掉不用的代码)
webpack4的这个功能很弱,只支持当前js中午用的代码删除
webpack5加强了这个功能

打包生成dist目录没有分类存储
打包生成动态名字和hash
 filename:'css/[name].[hash].css'
  filename:'css/[name].[hash:4].css' 4位hash值
 第一次打包文件会被浏览器自动缓存,当第二次修改打包发布文件不变,文件不会下载新的文件
hash:内容hash,内容有改变hash值就会改变

全局变量  jquery
全局变量使用import导入就需要每个地方都需要导入
配置全局变量
const webpack = require('webpack')
webpack.providePlugin 能够给所有组件注入全局变量
new webpack.ProvidePlugin({
  $:'jquery'
})

这样问题是会把jquery三方包一起打包,会造成打包的文件很大
将别的包使用cdn链接引入项目
  externals:{
    jquery:'$'
  }

图片加载  file-loader
file-loader默认使用的是es6的模块化
{
  test:/\.(jpg|png|webp)$/,
  use:[{
    loader:'file-loader',
    options: {
      esModule:false,//默认使用es6的模块化,false是commonjs模块化
      name: '[name].[ext]',
      outputPath: 'images/'
  }
  }],
},
1.使用js导入
2.css导入
 {
        test:/\.css$/,
        // use:['style-loader','css-loader'] 使用cssMiniExtractPlugin插件将css抽出
        use:[{
          loader: cssMiniExtractPlugin.loader,
          options: {
            publicPath:'../'
          }
        },'css-loader']

      },
3.html使用图片
插件  html-withimg-loader
配置:  {
        test:/\.html$/,
        use:['html-withimg-loader']
      },
url-loader使用方法和file-loader相同,只是url-loader可以设置limit属性在图片小于这个限制可以转化为base64

样式兼容性
chrome:webkit
等到所有厂商都支持后可以去掉前缀
安装插件: yarn add  -D autoprefixer postcss-loader  --legacy-peer-deps

使用创建配置文件:postcss.config.js
module.exports = {
  plugins:[
    require('autoprefixer')
  ]
}
在package.json中添加
  "browserslist":[
    "> 1%",
    "last 100 version",
    "not ie<=8"
  ]

配置postcss-loader
  {
    test:/\.css$/,
    // use:['style-loader','css-loader'] 使用cssMiniExtractPlugin插件将css抽出
    use:[{
      loader: cssMiniExtractPlugin.loader,
      options: {
        publicPath:'../'
      }
    },'css-loader',,'postcss-loader']

  },

单页面应用:页面都是动态生成,标签数据 单个html
多页面应用:  大型应用   静态化   多个html、

webpack多环境打包
各个环境服务器ip不同
.env 配置文件
模板模式:首先要有一个模板,这个模板会实现大部分功能,只留下部分未实现,子文件继承模板,自己扩展 最终得到一个子和父的合体
根究不同的环境配置

webpack.base.js  模板
webpack.dev.js  开发环境
webpack.prod.js 生产环境

多种跨域支持:

1.cors:后端处理
2.代理 nginx
3.webpack处理跨域
webpack代理 只能在开发中使用
devServer:{//w=配置webpack-dev-server
    port:"8080",//配置端口
    open:true,//自动打开浏览器
    // progress:true,//显示进度
    // contentBase:'./dist'//指定web服务器的根目录默认是dist
    proxy:{
      '/api':{
        target:'http://...',
        // pathRewrite:{
        //   '/api':''//去掉前缀/api
        // }
      }
    }
  },

4.将后端服务与前端服务整合到一块
const webpack = require('webpack');
const middle = require("webpack-dev-middleware");
const config = require('./webpack.config");
const compile = webpack(config);
app.use(middle(compile))

5.jsonp

热更新(热加载)
devServer:{//w=配置webpack-dev-server
    port:"8080",//配置端口
    open:true,//自动打开浏览器
    hot:true,//开启热更新
    // progress:true,//显示进度
    // contentBase:'./dist'//指定web服务器的根目录默认是dist
    proxy:{
      '/api':{
        target:'http://...',
        // pathRewrite:{
        //   '/api':''//去掉前缀/api
        // }
      }
    }
  },
单页面应用配置

const path = require('path');
let htmlWebpackPlugin = require('html-webpack-plugin');
const cssMiniExtractPlugin = require('mini-css-extract-plugin');
// const OptCssAssetsWebpackPlugin =require('optimize-css-assets-webpack-plugin')
const OptCssAssetsWebpackPlugin =require('css-minimizer-webpack-plugin')
const terserWebpackPlugin = require('terser-webpack-plugin')
const webpack = require('webpack')
// node写法,webpack基于node
module.exports = {
  mode:'production',//production、development
  // 入口
  entry:'./src/index.js',
  output:{
    path:path.resolve(__dirname,"dist"),
    filename:'js/[name].[hash].js'
  },
  devServer:{//w=配置webpack-dev-server
    port:"8080",//配置端口
    open:true,//自动打开浏览器
    // progress:true,//显示进度
    // contentBase:'./dist'//指定web服务器的根目录默认是dist
  },
  optimization:{
    minimizer:[new OptCssAssetsWebpackPlugin(),new terserWebpackPlugin()]
  },
  plugins:[
    new htmlWebpackPlugin({
      template:'./src/index.html',//指定输出得文件模板
      filename:'index.html'//指定输出的文件名,最好使用index.html,这样运行的时候可以直接找到index.html

    }),
    new cssMiniExtractPlugin({
      filename:'css/[name].[hash].css'
    }),
    new webpack.ProvidePlugin({
      $:'jquery'
    })
    
  ],
  module:{
    rules:[
      {
        test:/\.css$/,
        // use:['style-loader','css-loader'] 使用cssMiniExtractPlugin插件将css抽出
        use:[{
          loader: cssMiniExtractPlugin.loader,
          options: {
            publicPath:'../'
          }
        },'css-loader',,'postcss-loader']

      },
      {
        test:/\.less$/,
        use:[cssMiniExtractPlugin.loader,'css-loader','less-loader','postcss-loader']

      },
      // {
      //   test:/\.(jpg|png|webp)$/,
      //   use:[{
      //     loader:'file-loader',
      //     options: {
      //       esModule:false,//默认使用es6的模块化,false是commonjs模块化
      //       name: '[name].[ext]',
      //       outputPath: 'images/'
      //   }
      //   }],
      // },
      {
        test:/\.(jpg|png|webp)$/,
        use:[{
          loader:'url-loader',
          options: {
            esModule:false,//默认使用es6的模块化,false是commonjs模块化
            name: '[name].[ext]',
            outputPath: 'images/',
            limit:100*1024
        }
        }],
      },
      {
        test:/\.html$/,
        use:['html-withimg-loader']
      },
      {
        test:/\.js$/,
        use:{
          loader:'babel-loader',
          options:{
            presets:[
              "@babel/preset-env"
            ],
          }
        }

      }

    ]
  },
//排除不需要的第三方包
  externals:{
    jquery:'$'
  }

}

多页面应用:

// 多页面应用打包需要指定多个入口多个出口
const path = require('path');
let htmlWebpackPlugin = require('html-webpack-plugin');
const cssMiniExtractPlugin = require('mini-css-extract-plugin');
// const OptCssAssetsWebpackPlugin =require('optimize-css-assets-webpack-plugin')
const OptCssAssetsWebpackPlugin =require('css-minimizer-webpack-plugin')
const terserWebpackPlugin = require('terser-webpack-plugin')
const webpack = require('webpack')
// node写法,webpack基于node
module.exports = {
  mode:'production',//production、development
  // 入口多页面应用
  entry:{
    index:'./src/index.js',
    other:'./src/other.js'

  },
  output:{
    path:path.resolve(__dirname,"dist"),
    filename:'js/[name].[hash].js'//多个入口就输出多个文件
  },
  devServer:{//w=配置webpack-dev-server
    port:"8080",//配置端口
    open:true,//自动打开浏览器
    hot:true,//开启热更新
    // progress:true,//显示进度
    // contentBase:'./dist'//指定web服务器的根目录默认是dist
    proxy:{
      '/api':{
        target:'http://...',
        // pathRewrite:{
        //   '/api':''//去掉前缀/api
        // }
      }
    }
  },
  optimization:{
    minimizer:[new OptCssAssetsWebpackPlugin(),new terserWebpackPlugin()]
  },
  plugins:[
    // 输出主页 引入的js也不一样
    new htmlWebpackPlugin({
      template:'./src/index.html',//指定输出得文件模板
      filename:'index.html',//指定输出的文件名,最好使用index.html,这样运行的时候可以直接找到index.html
      chunks:['index']
    }),
    // 输出别的页面
    new htmlWebpackPlugin({
      template:'./src/index.html',//指定输出得文件模板
      filename:'other.html',//指定输出的文件名,最好使用index.html,这样运行的时候可以直接找到index.html
      chunks:['index','other']
    }),
    new cssMiniExtractPlugin({
      filename:'css/[name].[hash].css'
    }),
    new webpack.ProvidePlugin({
      $:'jquery'
    })
    
  ],
  module:{
    rules:[
      {
        test:/\.css$/,
        // use:['style-loader','css-loader'] 使用cssMiniExtractPlugin插件将css抽出
        use:[{
          loader: cssMiniExtractPlugin.loader,
          options: {
            publicPath:'../'
          }
        },'css-loader',,'postcss-loader']

      },
      {
        test:/\.less$/,
        use:[cssMiniExtractPlugin.loader,'css-loader','less-loader','postcss-loader']

      },
      // {
      //   test:/\.(jpg|png|webp)$/,
      //   use:[{
      //     loader:'file-loader',
      //     options: {
      //       esModule:false,//默认使用es6的模块化,false是commonjs模块化
      //       name: '[name].[ext]',
      //       outputPath: 'images/'
      //   }
      //   }],
      // },
      {
        test:/\.(jpg|png|webp)$/,
        use:[{
          loader:'url-loader',
          options: {
            esModule:false,//默认使用es6的模块化,false是commonjs模块化
            name: '[name].[ext]',
            outputPath: 'images/',
            limit:100*1024
        }
        }],
      },
      {
        test:/\.html$/,
        use:['html-withimg-loader']
      },
      {
        test:/\.js$/,
        use:{
          loader:'babel-loader',
          options:{
            presets:[
              "@babel/preset-env"
            ],
          }
        }

      }

    ]
  },
//排除不需要的第三方包
  externals:{
    jquery:'$'
  }

}

AI工具 | 每个打工人必备的15款人工智能超级工具 不过,还是有一些靠谱的人工智能平台,它们可不只是营销噱头。有些AI公司正试图改变游戏规则。人工智能工具让人们能够更聪明地工作,而不是更辛苦地劳作。如果你想知道未来有什么,那就来看看这10款人工智能工具吧,它们将彻底改变我们的工作方式。 阅读详情

相关推荐

ZYNQ平台AXI DMA传输避坑指南:如何快速定位‘errors:200‘等中断故障

本文详细解析了ZYNQ平台AXI DMA传输中常见的'errors:200'等中断故障,提供了从寄存器解析到压力测试的完整解决方案。通过深入分析XILINX_DMA中断机制、错误分类及五步排查法,帮助开发者快速定位并解决DMA传输问题,提升系统稳定性与性能。

weixin_29159613的博客 439

Vue-devServer.proxy代理配置

1、基本用法 // vue.config.js devServer: { proxy: { '/api': { target: 'http://localhost:81', } } } 现在,请求到 /api/xxx 现在会被代理到请求http://localhost:81/api/xxx,例如 /api/user现在会被代理到请求 http://localhost:81/api/user。 2、忽略API前缀 如果不希望传递/a...

qq_40007317的博客 3496

信贷风控实战指南:Vintage分析表从数据建模到风险洞察

本文是一份信贷风控实战指南,详细阐述了Vintage分析从数据建模到风险洞察的全流程。文章深入解析了Vintage分析作为信贷资产“体检报告”的核心价值,并提供了从借据表与还款计划表设计、账龄计算、逾期口径判定到风险暴露计算与最终可视化透视的完整SQL实现方案,旨在帮助风控从业者构建精准的风险监控体系。

nft7creator的博客 318

nginx 以 “/xxx“ 开头的请求代理中去掉xxx部分

但去掉 "/api" 部分,你可以使用 Nginx 的。例如如果你想将以 "/api" 开头的请求代理转发到。# 重写请求,去掉 "/api" 部分。# 使用代理转发请求。

hy1308060113的博客 1953

当交警手势遇见边缘计算:轻量化手势识别系统的落地挑战

本文探讨了边缘计算环境下交警手势识别系统的技术挑战与解决方案,结合OpenPose和LSTM算法优化,实现轻量化部署。通过深度可分离卷积、量化感知训练等技术创新,在算力受限的边缘设备上达到高效实时识别,为智能交通系统提供可靠支持。

weixin_29079671的博客 636

携程登录风控逆向踩坑实录:从滑块到点选验证码,我是如何一步步拿到phantom-token的

本文详细解析了携程登录风控系统的逆向过程,从滑块验证码到点选验证码的破解,再到设备指纹生成和加密协议逆向,最终成功获取phantom-token。文章提供了关键代码示例和实战技巧,帮助开发者理解并绕过复杂的风控机制。

weixin_28049429的博客 968

webpack设置服务器代理

服务器代理的作用 解决跨域: 原理: 利用服务器访问服务器没有跨域问题的原理 请求过程:先向代理(同源)服务器发起请求,再由代理(同源)服务器请求外部服务器 // proxy 中间件的选择项 proxyTable : { ‘/api’: { // 目标服务器 host target: ‘http://10.16.85.138:8080’, // 默认false,是否需要改变原始主机头为目标URL ...

weixin_41266672的博客 2042

避坑指南:STM32F4的ADC采样FSR传感器,如何稳定读数并校准压力值?

本文详细解析了STM32F4的ADC采样FSR薄膜压力传感器时遇到的读数不稳定和非线性校准问题,提供了从硬件配置到软件滤波的完整解决方案。通过优化ADC设置、改进滤波算法和实施分段线性校准,帮助工程师实现高精度压力测量,特别适用于智能手套和医疗监测等应用场景。

weixin_28675839的博客 273

高并发高可用复杂系统中的缓存架构(二十) 分布式缓存重建并发冲突问题以及 zookeeper 分布式锁解决方案

什么是分布式缓存重建并发冲突问题? 很简单,多个缓存服务实例提供服务,发现缓存失效,那么就会去重建,这个时候回出现以下几种情况: 多个缓存实例都去数据库获取一份数据,然后放入缓存中 新数据被旧数据覆盖 缓存 a 和 b 都拿了一份数据,a 拿到 12:00:01 的数据,b 拿到 12:00:05 的数据 缓存 b 先写入 redis,缓存 a 后写入。 以上问题有多重解决方案,如: 利用 hash 分发 相同商品分发到同一个服务中,服务中再用队列去重建 但是这就

liuerchong的博客 462

信号处理算法:自适应滤波_(8).自适应陷波器

自适应陷波器是一种强大的工具,广泛应用于电力系统、通信系统和生物医学信号处理等领域。通过自适应调整滤波器的参数,自适应陷波器可以在特定频率处形成陷波,从而有效地抑制噪声或干扰信号。常见的自适应算法包括LMS和RLS,它们各有优缺点,可以根据实际需求选择合适的算法。

2401_87715305的博客 1370

《UDS协议从入门到精通》系列——图解0x85:控制DTC的设置

如何让ECU停止或恢复DTC状态位更新?有哪些注意点?图解+示例教你快速上手UDS 0x85服务!!

车载系统攻城狮 3861

webpack的代理proxy配置

配置代理如下 vue-cli3.0以前版本配置/config/index.js文件: module.exports = { dev: { proxyTable: { '/api/**': { target: 'http://10.10.17.64:8082/', changeOrigin: false, secure: false, pathRewrite: { '^/api': ''

Beam 8649

webpack学习计划

以下是一个针对webpack的学习计划,旨在帮助初学者逐步掌握这一前端项目构建工具。

小徐的博客 1747

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

webpack学习步骤

样式处理:如何处理 CSS、Sass、Less 文件,通过相关 loader(如 css-loader, sass-loader, style-loader)。TypeScript 与 Webpack 配置:学习如何在 Webpack 中配置 TypeScript 和 Babel,以支持多种语言的编译。Webpack Loaders 文档:Webpack 的 loader 配置文档,帮助你理解和应用不同类型的 loader。

weixin_43986984的博客 1049

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

webpack的学习

webpack的学习 尚硅谷2020最新版Webpack5实战教程(从入门到精通),哔哩哔哩链接:https://www.bilibili.com/video/BV1e7411j7T5?p=1 环境参数: Nodejs 10版本以上、webpack 4.26版本以上 预备技能: 基本Nodejs知识和Npm指令、熟悉ES6语法 一、webpack基本使用 1.webpack简介 ​ webpack 是一种前端资源构建工具,一个静态模块打包器(module bundler)。 在 webpack 看来,

qq_461491877的博客 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

webpack的学习复习笔记,包括(webpack使用、webpack配置、webpack服务器等)

本文包含 webpack 使用等内容,参考于 黑马PPT 通过自己理解整理,所以这是一篇用于小白新手入门,或者复习使用的笔记,主要包括(webpack使用、webpack配置、webpack服务器等)

weixin_60896381的博客 903

webpack学习之路

Webpack 1.安装node.js 安装了node.js环境 已安装查看node -v,还有npm包管理工具 npm -v 2.生成配置文件 初始化项目npm init -y,生成配文件package.json 3.下载webpack和webpack-cli 3.1下载webpack 命令:npm install webpack –save-dev 生成 node_modules文件夹和package-lock.json文件 配置文件记录: 3.2下载we...

weixin_46603501的博客 234

学习Webpack需要掌握的一些技术

学习Webpack的意义

yeh_shyer的博客 907

Webpack学习笔记

webpack 学习笔记webpack学习笔记1 入门示例1.1 新建入门项目1.2 安装webpack和webpack-cli1.3 新建要通过webpack打包的文件1.4 使用webpack打包1.5 引用打包后的文件2 基本知识2.1 关于执行`npx webpack`2.2 webpack基本配置 webpack学习笔记 1 入门示例 1.1 新建入门项目 通过npm init命令新建一...

qq122516902的博客 569

webpack学习方法

webpack学习方法 第一步 根据网上的webpack教程完成一些基本的练习,在练习过程中大概了解一下每一步的作用,从练习教程可以非常直观的看到每一步执行之后对整个项目的影响与作用。 这里推荐:入门webpack 第二步 根据webpack官方网站系统的学习,当然不必全部都看,总之前提时对照之前的练习,弄透彻每一步的作用。 经过上面两步的训练,webpack算是入门啦 第三步 通

weixin_38405133的博客 410

Webpack4学习笔记整理

Webpack4个人学习笔记整理

小天才程序员的博客乐园 8864

我的webpack学习之路(webpack配置详解)

我的webpack学习之路(webpack配置详解) entry output module resolve devServer optimization

smileBoy的博客 300

Webpack 学习资料。

1. Webpack 学习资料。http://www.ybao.org/book/webpack/2890.html

qq_38719039的博客 255

WEBPACK简单学习笔记

前端校招精编面试解析大全点击这里免费获取完整版pdf查看份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**[外链图片转存中…(img-EgPxBwvw-1713591576419)][外链图片转存中…(img-WYctqNgc-1713591576420)]既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

2401_84091628的博客 1021
上一篇: 实现大图片秒开
下一篇: Vue3学习
小蒋小蒋快乐成长
博客等级 码龄9年 2109粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值