当前位置: 首页 > news >正文

对做的网站的改进建议厦门人才网官网

对做的网站的改进建议,厦门人才网官网,大数据开发平台,自建团体电子商务网站建设成本文章目录 前言Qrcode组件1. 功能分析2. 代码详细注释3. 使用方式4. 效果展示(pc端 / 移动端) 总结 前言 今天要封装的Qrcode 组件,是通过传入的信息,绘制在二维码上,可用于很多场景,如区块链项目中的区块显示交易地址时就可以用到…

文章目录

  • 前言
  • Qrcode组件
    • 1. 功能分析
    • 2. 代码+详细注释
    • 3. 使用方式
    • 4. 效果展示(pc端 / 移动端)
  • 总结


前言

今天要封装的Qrcode 组件,是通过传入的信息,绘制在二维码上,可用于很多场景,如区块链项目中的区块显示交易地址时就可以用到。

Qrcode组件

1. 功能分析

(1)通过传入text属性,表示要绘制的信息
(2)使用useEffect,监听数据,当发生变化时重新绘制二维码
(3)支持传入 className 自定义类名来修改样式

2. 代码+详细注释

// @/components/Qrcode/index.tsx
import { useEffect, useRef, FC } from "react";
import QRCode from "qrcode";
import { ReactComponent as QrCodeIcon } from "./assets/qrcode.svg";
import { QrcodeContainer } from "./styled";
import classNames from "classnames";// 组件的属性类型
type Props = {text: string; // 要绘制的二维码内容className?: string; // 自定义的类名
};const Qrcode: FC<Props> = ({ text, className }) => {const qrRef = useRef<HTMLCanvasElement | null>(null);useEffect(() => {// 获取canvas元素refconst cvs = qrRef.current;// 如果没有 canvas 元素的引用,则直接返回if (!cvs) return;// 调用 QRCode.toCanvas 方法,将text绘制到canvas上QRCode.toCanvas(cvs,text,{margin: 5, // 设置二维码周围的边距errorCorrectionLevel: "H", // 设置二维码的容错级别width: 144, // 设置二维码的宽度},(err) => {if (err) {console.error(err);}});}, [qrRef, text]); // 监听qrRef和text,当发生变化时重新绘制二维码return (<QrcodeContainer className={classNames(className)}><label><QrCodeIcon /></label><canvas ref={qrRef} className={classNames("qrcode")} /></QrcodeContainer>);
};export default Qrcode;
------------------------------------------------------------------------------
// @/components/Qrcode/styled.tsx
import styled from "styled-components";
import variables from "@/styles/variables.module.scss";
export const QrcodeContainer = styled.div`width: 100%;position: relative;cursor: pointer;label {display: flex;align-items: center;cursor: pointer;}.qrcode {top: calc(100% + 10px);box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);}&::after {top: calc(100% - 15px);content: "";width: 5px;height: 5px;border: 10px solid transparent;border-bottom: 10px solid #fff;filter: drop-shadow(0 -5px 5px rgb(0, 0, 0, 0.1));}.qrcode,&::after {display: none;position: absolute;left: 50%;transform: translateX(-50%);}&:hover,&:focus-within {.qrcode,&::after {display: block;}}@media (max-width: ${variables.mobileBreakPoint}) {.qrcode,&::after {left: 0;}}
`;

3. 使用方式

// 引入组件
import Qrcode from "@/components/Qrcode";
// 使用
const address = "http://test-address?block=XXXX"
<Qrcode text={ address } />

4. 效果展示(pc端 / 移动端)

在这里插入图片描述
在这里插入图片描述


总结

下一篇讲【全局常用组件Echarts封装】。关注本栏目,将实时更新。

http://www.khdw.cn/news/8688.html

相关文章:

  • 找人做公司网站最新消息新闻
  • 西宁做网站治愈君博i360搜索推广
  • 昆明做网站公司免费b站推广网站在线
  • 印刷网络商城网站建设河南百度推广电话
  • 商城网站开发项目分工网站制作报价表
  • 贵阳网站建设黔搜seo点击排名软件哪家好
  • 建一个网站需要做什么的51link友链
  • 物流信息网站有哪些手机做网页的软件
  • 网站搭建商上海河南网站排名优化
  • 北京工商注册代理记账哈尔滨seo网站管理
  • 连接器零售在什么网站做信息流广告公司排名
  • 英文公司网站模板环球军事网
  • 中国国家标准建设信息网站重庆网站seo建设哪家好
  • 网站建设空间什么意思网络推广要求
  • 成品网站代理模板网站免费
  • 公司委托建设网站合同西安专业网络推广平台
  • 多语种网站建设开发海口关键词优化报价
  • app开发网站建设培训班广告投放价目表
  • 绍兴住房和城乡建设厅网站首页如何自己做一个网址
  • 做视频教学网站百度大数据分析平台
  • 大连做网站报价百度一下你就知道首页官网
  • 创建网站向导和模板国内最新新闻消息今天的
  • 百度做网站免费bt磁力猪
  • tk网站朋友圈推广
  • 网站登录界面模板下载html制作网页代码
  • 上海民政网站相关建设情况百度问答库
  • 网站 文本编辑器外贸营销
  • 网站教程分享新闻发稿公司
  • 个人nas做网站什么是电商
  • 南京企业做网站杭州网站优化公司哪家好