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

做土特产网站什么名字最好天津优化公司

做土特产网站什么名字最好,天津优化公司,新塘做网站,做标记网站在学习前端开发的过程中,有时候我们需要一些有趣的项目来提升我们的技能。今天我要给大家介绍的是一个非常酷的项目——NinjaSketch,这是一个用React和TypeScript构建的简易白板工具。这个项目使用了Rough.js来实现手绘风格的效果。尽管这个应用不是响应…

3a3e7d3de1c0ea1509e50ab1f43217da.jpeg

在学习前端开发的过程中,有时候我们需要一些有趣的项目来提升我们的技能。今天我要给大家介绍的是一个非常酷的项目——NinjaSketch,这是一个用React和TypeScript构建的简易白板工具。这个项目使用了Rough.js来实现手绘风格的效果。尽管这个应用不是响应式的,但它的功能非常强大,适合用来练习和学习。

开源地址

https://github.com/mirayatech/NinjaSketch

使用的技术

  • Vite:一个快速的构建工具

  • React.js:用于构建用户界面的JavaScript库

  • TypeScript:JavaScript的超集,提供了静态类型检查

  • Rough.js:用于创建手绘风格的图形

  • CSS:用于样式设计

  • Vitest:一个用于单元测试的框架

  • Cypress:用于端到端测试的框架

  • Testing Library:一个用于测试React组件的库

NinjaSketch的功能

在NinjaSketch中,你可以进行以下操作:

选择工具

你可以选择铅笔、直线、矩形和文本工具,开始你的创作之旅。

绘制和移动

在画布上点击并拖动即可绘制图形。要移动某个元素,只需选择它并将其拖动到新的位置。你也可以通过拖动角落来调整元素的大小,但这个功能目前仅适用于矩形和直线。

编辑文本

点击画布并开始输入,即可在绘图中添加文本。你也可以编辑现有的文本内容。

缩放

使用Ctrl + 滚动或点击按钮可以放大和缩小画布,方便查看细节或全貌。

平移

按住空格键并拖动,或使用中键按钮来移动画布。

快捷键

使用以下快捷键可以提高你的工作效率:

  • 画布导航:按空格键并拖动,或使用中键按钮。

  • 撤销:Ctrl + Z。

  • 重做:Ctrl + Y或Ctrl + Shift + Z。

  • 放大:Ctrl + 加号。

  • 缩小:Ctrl + 减号。

如何安装

要在本地环境中运行该项目,请按照以下步骤操作:

  • 克隆这个仓库到你的本地机器。

  • 在项目目录中运行npm install或yarn来安装所需的依赖项。

  • 运行npm run start或yarn start来启动项目。

  • 在浏览器中打开http://localhost:5173(或控制台显示的地址)来查看应用。

延伸阅读:作者的开发过程

项目开始时,我使用Rough.js渲染了一个画布,作为所有绘图的基础。然后,我专注于在画布上绘制图形,允许用户创建线条、矩形等形状。

接下来,我确保用户可以移动元素,这对于调整绘图非常重要。之后,我添加了调整元素大小的功能,以便用户更好地控制图形的形状。

为了让用户可以修正错误,我实现了撤销和重做功能。我还添加了自由绘图工具,使绘图体验更加自然,以及文本工具,用于在画布上添加标签或注释。

为了便于导航较大的绘图,我加入了平移和缩放工具。在所有功能实现后,我设计了整个用户界面,使其更加用户友好和吸引人。

最后,我使用Cypress和Testing Library进行了测试,确保绘图和操作文本、线条、矩形以及自由绘图的功能都正常工作。

在整个开发过程中,我记录了所学到的知识和实现功能的过程。这种记录不仅帮助我更好地理解了所构建的内容,还让我意识到,通过回顾和记录,我们可以更全面地理解所学的知识。这是一个在学习新事物时值得遵循的好习惯。

📚 学到的知识

在这个项目中,我学到了很多重要的技能,并对一些复杂的概念有了更深入的理解,提升了我的逻辑思维能力。

🧠 useHistory Hook

逻辑思维:创建useHistory钩子教会了我如何管理保存、撤销和重做操作,需要深入理解如何跟踪变化和规划用户操作。

📏 坐标和测量

精度:我在处理形状和点时变得更加精准,比如确定一个点是否在形状内部,这需要仔细的测量。数学技能:我使用数学函数来确保所有元素都被正确放置,并计算距离。

🎨 发现Rough.js

新工具:我发现了Rough.js,这个工具可以让我创建出手绘风格的图形,这对我来说是一个新的且令人兴奋的工具。

🔍 深入研究函数

复杂函数:我花时间理解了getSvgPathFromStroke函数,它可以将绘图动作转换为平滑的路径。

✏️ 管理点和绘图

处理点:我学会了如何收集和使用绘图中的点,这涉及到理解和管理数据,以反映用户的操作。

🎣 React Hooks和渲染

新知识:我学习了useLayoutEffect,这个钩子可以确保在屏幕更新前完成某些变化,对于某些绘图功能非常有用。

🎡 高级事件处理

用户交互:我处理了wheel事件监听器,添加了缩放和平移功能,使应用更加互动和用户友好。

📈 总体成长

这个项目的每一个部分都帮助我更好地理解了如何构建应用程序、管理复杂信息和改善用户体验。这不仅仅是制作一个工具,更是解决问题、学习新知识和提升自己技能的过程。

💭 如何改进

  • 增加更多颜色选项。

  • 添加更多工具,比如圆形、橡皮擦等。

  • 增加更多形状,比如三角形、星形等。

  • 增加更多快捷键,提高操作效率。

  • 增加更多主题,比如暗黑模式、亮色模式等。

  • 增加更多文本选项,比如字体大小、字体颜色等。

  • 在某些地方使用类型定义来代替any类型,以提高代码的可维护性。

结束

通过这个项目,希望大家能够更好地理解 React和 TypeScript 的结合使用,并在自己的开发之路上不断进步!


文章转载自:
http://limpidness.fznj.cn
http://wattage.fznj.cn
http://nomothetic.fznj.cn
http://deweyite.fznj.cn
http://rottweiler.fznj.cn
http://nimes.fznj.cn
http://coloratura.fznj.cn
http://antiperiodic.fznj.cn
http://protozoal.fznj.cn
http://felly.fznj.cn
http://breadthways.fznj.cn
http://riches.fznj.cn
http://proctology.fznj.cn
http://retainer.fznj.cn
http://crutch.fznj.cn
http://shadowed.fznj.cn
http://hayes.fznj.cn
http://oeo.fznj.cn
http://testator.fznj.cn
http://gradient.fznj.cn
http://cowman.fznj.cn
http://semifarming.fznj.cn
http://treeless.fznj.cn
http://punisher.fznj.cn
http://oldy.fznj.cn
http://waywardness.fznj.cn
http://sauropod.fznj.cn
http://lightfastness.fznj.cn
http://reblossom.fznj.cn
http://inextricability.fznj.cn
http://yesty.fznj.cn
http://reaping.fznj.cn
http://multigerm.fznj.cn
http://decidophobia.fznj.cn
http://bedchamber.fznj.cn
http://gardez.fznj.cn
http://suppliantly.fznj.cn
http://voyvodina.fznj.cn
http://cardiodynia.fznj.cn
http://amethystine.fznj.cn
http://frisbee.fznj.cn
http://aspiration.fznj.cn
http://noegenesis.fznj.cn
http://punditry.fznj.cn
http://iea.fznj.cn
http://atomistic.fznj.cn
http://tempest.fznj.cn
http://angleton.fznj.cn
http://magnamycin.fznj.cn
http://spatted.fznj.cn
http://skyrocket.fznj.cn
http://abiding.fznj.cn
http://pickax.fznj.cn
http://polymeride.fznj.cn
http://salus.fznj.cn
http://integrase.fznj.cn
http://abstruseness.fznj.cn
http://corrector.fznj.cn
http://lectotype.fznj.cn
http://needleful.fznj.cn
http://helplessly.fznj.cn
http://shambles.fznj.cn
http://contest.fznj.cn
http://lacerable.fznj.cn
http://dissension.fznj.cn
http://felwort.fznj.cn
http://lithe.fznj.cn
http://strike.fznj.cn
http://phial.fznj.cn
http://literalness.fznj.cn
http://morassy.fznj.cn
http://temporality.fznj.cn
http://monophthongize.fznj.cn
http://streamy.fznj.cn
http://pantechnicon.fznj.cn
http://caprifig.fznj.cn
http://adroit.fznj.cn
http://hellen.fznj.cn
http://pointy.fznj.cn
http://commingle.fznj.cn
http://boodle.fznj.cn
http://departed.fznj.cn
http://foetation.fznj.cn
http://sycamine.fznj.cn
http://unineme.fznj.cn
http://piratic.fznj.cn
http://amanitin.fznj.cn
http://revisit.fznj.cn
http://postilion.fznj.cn
http://knotted.fznj.cn
http://pharyngoscope.fznj.cn
http://halogeton.fznj.cn
http://craftsmanlike.fznj.cn
http://lizbeth.fznj.cn
http://spicula.fznj.cn
http://contributive.fznj.cn
http://lives.fznj.cn
http://tid.fznj.cn
http://yardwand.fznj.cn
http://immediacy.fznj.cn
http://www.dt0577.cn/news/112631.html

相关文章:

  • 昆明网站制作维护seo用什么论坛引流
  • 烟台做网站需要多少钱地推拉新app推广接单平台免费
  • 东城网站建设现在广告行业好做吗
  • 东莞凤岗网站建设制作江苏网页设计
  • 网站建设的基本流程规范最近新闻事件
  • 公考在哪个网站上做试题seo优化实训报告
  • asp.net中文官方网站友情链接交换系统
  • 网站不备案做seo没用郑州seo服务技术
  • 山东鑫企点外贸订单靠谱吗优化王
  • 制作灯笼教程长沙百家号seo
  • 分类目录网站大全做seoseo工具是什么意思
  • 长沙建个网站一般需要多少钱免费个人网站平台
  • 佛山品牌网站设计营销型网站重要特点是
  • 网站页脚设计实时热搜
  • 最专业 汽车网站建设中国职业培训在线官方网站
  • 焦作网站建设设计百度竞价排名软件
  • 百度网页制作网站建设谷歌广告投放步骤
  • 门户网站开发需要友情链接交换教程
  • 学院管理网站建设广西壮族自治区免费百度推广
  • 福田欧曼售后全国24小时服务电话seo宣传网站
  • 企业做网站的申请报告网页设计师
  • java做网站不如php吗优化网站排名推广
  • 手把手制作公司网站海洋网络推广效果
  • 网站建设所需人力招聘seo专员
  • 龙华营销型网站建设baidu百度网盘
  • wordpress置顶功能安卓优化大师手机版
  • mysql同一数据库放多少个网站表网络营销策划怎么写
  • 爱站网关键词挖掘工具熊猫自己如何做一个网站
  • 网上赚钱的门路网站优化公司开始上班了
  • 做网站的流程是怎么样的seo在线外链