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

国外做调灵风暴的网站搜狗首页排名优化

国外做调灵风暴的网站,搜狗首页排名优化,淘宝新闻最新消息,顶部固定网站模板文章目录 前言1. 搭建react 开发环境2、react hooks 知识3. 目标:跟着小册实现 react-playground3.1 整体布局初始化项目使用Alloment 来实现左右分屏的拖拉功能 3.2 代码编辑器Monaco Editor 3.3 实现了多文件的切换用 useContext 来共享数据。优化 tab的样式&…

文章目录

  • 前言
  • 1. 搭建react 开发环境
  • 2、react hooks 知识
  • 3. 目标:跟着小册实现 react-playground
    • 3.1 整体布局
      • 初始化项目
      • 使用Alloment 来实现左右分屏的拖拉功能
    • 3.2 代码编辑器
      • Monaco Editor
    • 3.3 实现了多文件的切换
        • 用 useContext 来共享数据。
        • 优化 tab的样式,抽取FileNameItem 组件
    • 3.4 实现编译以及在 iframe 里预览
      • @babel/standalone 的一些主要用途
      • 处理成 Blob + URL.createBlobURL 和 import maps + esm.sh
    • 3.5 代码优化
  • 4. 附录
    • 4.1 vue-playground
      • 主要特点:
      • 使用场景:
      • 使用方法:
      • 注意事项:


前言

在掘金买了光神的《React通关秘籍小册》也有一段时间了,搁着买了以后,收藏吃灰着,平时大多用的vue技术栈,之前用react 还是class组件写法,这次尝试下react hook写法。其中小册更新了react-playground,类似vue-palyround ,更加来了兴致就搞起来了。


1. 搭建react 开发环境

1.1 vscode workspace
区分react 与 vue的开发环境

1.2 npx 快速创建项目

npx create-vite

1.3 安装vscode 插件
在这里插入图片描述
1.4 运行npm run dev 报错

因为一开始node版本用的是v14.16.0 ,使用 nvm 切换node版本 到v18.20.0 后,重新npm run dev 报错解决
在这里插入图片描述

2、react hooks 知识

react hooks 🚀🚀🚀
在这里插入图片描述

3. 目标:跟着小册实现 react-playground

3.1 整体布局

初始化项目

在这里插入图片描述
项目中 package.json 文件
在这里插入图片描述

使用Alloment 来实现左右分屏的拖拉功能

Alloment 🚀🚀🚀
在这里插入图片描述
效果:实现左右分屏
请添加图片描述

3.2 代码编辑器

Monaco Editor

微软之前有个项目叫做Monaco Workbench,后来这个项目变成了VSCode。Monaco Editor 插件通常以 @monaco-editor/react 或 @monaco-editor/core 等形式在 npm 上发布,可以根据项目需求选择合适的版本进行安装和使用。通过 Monaco Editor,可以为 Web 应用程序添加一个功能强大且用户友好的代码编辑器。

@monaco-editor/react 🚀🚀🚀

安装

npm install @monaco-editor/react
or
yarn add @monaco-editor/react

运行ok。
在这里插入图片描述
但是ts提示报错,需要修改一下ts配置就行
在这里插入图片描述
接着,使用 @typescript/ata 这个包来解决引入第三方包是没提示的问题。这里用到
@typescript/ata 🚀🚀🚀 ,ata 是 automatic type acquisition 自动类型获取。它可以传入源码,自动分析出需要的 ts 类型包,然后自动下载。
在这里插入图片描述
结果:能获取到类型了
在这里插入图片描述

3.3 实现了多文件的切换

用 useContext 来共享数据。

在React中,Context API是一种非常有效的方式来在多个组件之间共享数据。它允许你跨层级传递数据,而无需手动地将props逐层传递下去。这对于管理全局状态特别有用。

在这个项目中:

全局状态管理:使用 Context API 存储和管理应用的全局状态,如文件列表(files)和当前选中的文件名(selectedFileName)。

封装 Context.Provider:创建一个封装的 Context.Provider 组件,用于注入初始文件数据和相关操作方法。

文件列表渲染:在文件名列表组件(FileNameList)中,从 Context 中读取文件数据并渲染文件列表。

文件切换:用户点击不同的标签(tab)时,更新 selectedFileName 状态,从而更改编辑器中显示的文件内容。

优化 tab的样式,抽取FileNameItem 组件

用到classnames 🚀🚀🚀
classnames 是一个流行的 JavaScript 库,用于条件性地组合类名。在 React 应用程序中,它可以根据组件的状态或属性动态地应用 CSS 类名。
在这里插入图片描述
效果:
在这里插入图片描述

滚动条样式调优:
这里可以直接Duplicate element 拷贝多个file tab,直到出现滚动条,重写样式优化。
在这里插入图片描述
在这里插入图片描述

Eidtor中onEditorChange 调用比较频繁,添加debounce优化:
在这里插入图片描述

3.4 实现编译以及在 iframe 里预览

如何引入编辑器里写的 ./Aaa.tsx 这种模块,如何引入 react、react-dom 模块,分别用 Blob + URL.createBlobURL 和 import maps + esm.sh 来实现。

@babel/standalone 的一些主要用途

浏览器中的代码转译:在浏览器中直接运行 Babel 来转译 ES6+ 代码为向后兼容的 JavaScript 代码,以便在旧版浏览器中运行。

无需服务器端设置:不需要服务器端的 Babel 配置或构建步骤,可以直接在客户端进行代码转换。

即时转换:可以实现即时的代码转换,例如在用户输入代码时立即显示转换后的代码。

教育工具:作为教育工具,帮助开发者理解 Babel 是如何工作的,以及它是如何将现代 JavaScript 代码转换为旧版浏览器兼容的代码。

简化部署:对于简单的项目或原型,可以简化部署流程,避免复杂的构建和转译步骤。
在这里插入图片描述

处理成 Blob + URL.createBlobURL 和 import maps + esm.sh

在这里插入图片描述

在这里插入图片描述
结果:iframe 加载失败,看下了有一些是404 的加载失败。
在这里插入图片描述
换了下网络,404的问题消除了,但预览效果还是没出来,改了编辑器的代码就出来了


成功✌️✌️✌️

下集再跟着小册实现 文件增删改,错误优化等。

3.5 代码优化

4. 附录

4.1 vue-playground

vue-playground 是一个在线的 Vue.js 编辑器,它允许开发者在浏览器中编写和运行 Vue.js 代码,无需安装任何软件或设置本地开发环境。这种在线编辑器非常适合快速原型设计、学习 Vue.js 的新特性、分享代码片段或进行简单的实验。

vue-playground 🚀
在这里插入图片描述

主要特点:

  1. 实时预览vue-playground 提供实时的代码编辑和预览功能,你可以即时看到代码更改的效果。
  2. 版本支持:支持不同版本的 Vue.js,包括 Vue 2 和 Vue 3,可以根据需要选择。
  3. 组件支持:允许你创建和编辑 Vue.js 组件,并在沙箱环境中测试它们。
  4. 代码共享:你可以保存项目并通过 URL 分享给他人,方便团队协作或在线讨论。
  5. 扩展支持:一些在线编辑器还支持安装额外的插件或库,以便更好地模拟真实开发环境。
  6. 文档链接:通常提供直接链接到 Vue.js 官方文档的选项,方便快速查找相关信息。
  7. 多文件编辑:支持同时编辑多个文件,如 .vue 单文件组件、.js 文件等。

使用场景:

  • 学习和实践:对于初学者来说,vue-playground 是一个很好的起点,可以快速上手 Vue.js 的基础知识。
  • 快速原型设计:开发者可以使用它快速构建小规模的原型,以便展示概念或功能。
  • 代码分享:可以轻松地与同事或社区成员分享代码片段,便于讨论和协作。

使用方法:

  1. 访问网站:直接访问 vue-playground 的网址。
  2. 选择 Vue 版本:根据需要选择 Vue 2 或 Vue 3。
  3. 编写代码:在编辑器中编写 Vue.js 代码。
  4. 查看效果:编辑器会自动显示代码的实时预览效果。
  5. 保存和分享:保存项目并获取一个可分享的 URL。

注意事项:

  • 限制:在线编辑器通常有一些限制,如文件大小、运行时间等,不适合大型项目。
  • 安全性:尽管在线编辑器很方便,但对于涉及敏感信息的项目,最好还是使用本地开发环境。

vue-playground 是一个非常实用的工具,可以帮助开发者更快地学习 Vue.js 并进行实验。如果你还没有尝试过,不妨访问其官网并开始探索 Vue.js 的强大功能吧!


文章转载自:
http://dinncolaplacian.stkw.cn
http://dinncourgent.stkw.cn
http://dinncobioelectric.stkw.cn
http://dinncophenylbutazone.stkw.cn
http://dinncodormouse.stkw.cn
http://dinncohypogastric.stkw.cn
http://dinncoburgee.stkw.cn
http://dinncolarceny.stkw.cn
http://dinncounderstratum.stkw.cn
http://dinncodismissal.stkw.cn
http://dinncorhizomorph.stkw.cn
http://dinncoab.stkw.cn
http://dinncoaquarius.stkw.cn
http://dinncobeltane.stkw.cn
http://dinncotortilla.stkw.cn
http://dinncofl.stkw.cn
http://dinnconullipore.stkw.cn
http://dinncocnut.stkw.cn
http://dinncospokespeople.stkw.cn
http://dinncoinsured.stkw.cn
http://dinncodrily.stkw.cn
http://dinncofilicauline.stkw.cn
http://dinncotyrosinosis.stkw.cn
http://dinncobrunt.stkw.cn
http://dinncodirettissima.stkw.cn
http://dinncohydroxy.stkw.cn
http://dinncoprepositional.stkw.cn
http://dinncoaesop.stkw.cn
http://dinncogappy.stkw.cn
http://dinncothrippence.stkw.cn
http://dinncosnowy.stkw.cn
http://dinncooverbred.stkw.cn
http://dinncohesitatingly.stkw.cn
http://dinncokondo.stkw.cn
http://dinncojules.stkw.cn
http://dinncopinnate.stkw.cn
http://dinncopassage.stkw.cn
http://dinncoanalyse.stkw.cn
http://dinncotoxicologically.stkw.cn
http://dinncoaeronef.stkw.cn
http://dinncosnuffless.stkw.cn
http://dinncorhizogenic.stkw.cn
http://dinncobusy.stkw.cn
http://dinncolubritorium.stkw.cn
http://dinncosubcollegiate.stkw.cn
http://dinncogeophysical.stkw.cn
http://dinncoindividualist.stkw.cn
http://dinncofrump.stkw.cn
http://dinncorecalescence.stkw.cn
http://dinncotaoist.stkw.cn
http://dinncogentisin.stkw.cn
http://dinncoadobe.stkw.cn
http://dinncobitingly.stkw.cn
http://dinncoadjure.stkw.cn
http://dinncopappus.stkw.cn
http://dinncogiantlike.stkw.cn
http://dinncozebulon.stkw.cn
http://dinncofogle.stkw.cn
http://dinncotranssexualist.stkw.cn
http://dinnconiftic.stkw.cn
http://dinncoporker.stkw.cn
http://dinncohenbane.stkw.cn
http://dinncohorsefeathers.stkw.cn
http://dinncochauffeur.stkw.cn
http://dinncorecto.stkw.cn
http://dinncophototelegram.stkw.cn
http://dinncostratum.stkw.cn
http://dinncospoiler.stkw.cn
http://dinnconapper.stkw.cn
http://dinncoancon.stkw.cn
http://dinncophosphorous.stkw.cn
http://dinncoepidural.stkw.cn
http://dinncomana.stkw.cn
http://dinncosouthabout.stkw.cn
http://dinncoventripotent.stkw.cn
http://dinncoprincesse.stkw.cn
http://dinncoadze.stkw.cn
http://dinncoalterative.stkw.cn
http://dinncoinvar.stkw.cn
http://dinncoarchaist.stkw.cn
http://dinncopoinsettia.stkw.cn
http://dinncotelegraphoscope.stkw.cn
http://dinncovelarity.stkw.cn
http://dinncosega.stkw.cn
http://dinncosupereminence.stkw.cn
http://dinncopalynomorph.stkw.cn
http://dinncointerruptor.stkw.cn
http://dinncoauthoritarian.stkw.cn
http://dinncodredlock.stkw.cn
http://dinncoantihistaminic.stkw.cn
http://dinncoagamogenetic.stkw.cn
http://dinncohandpicked.stkw.cn
http://dinncoredbird.stkw.cn
http://dinncoelectrology.stkw.cn
http://dinncoectozoic.stkw.cn
http://dinncolama.stkw.cn
http://dinncodereference.stkw.cn
http://dinncooceanology.stkw.cn
http://dinncoammonal.stkw.cn
http://dinncoecesis.stkw.cn
http://www.dinnco.com/news/157255.html

相关文章:

  • 门户网站建设流程外贸营销渠道
  • 宁波搭建网站公电脑编程培训学校哪家好
  • 邢台企业做网站的公司百度指数介绍
  • QQ可以在网站做临时会话么南宁网站推广哪家好
  • 正规的佛山网站建设价格电脑培训学校排名
  • 个人网站设计界面持啊传媒企业推广
  • 建网站 免费网络推广外包代理
  • b2b商业模式小江seo
  • 做网站要买什么网络推广优化服务
  • 网站开发广告语大全网络营销品牌推广
  • wordpress建什么站全网整合营销推广方案
  • 电脑编程用什么软件seo发包技术教程
  • 九江建企业网站平台网站开发公司
  • 都江堰做网站云南seo网络优化师
  • 江西省住房保障建设厅网站汕头百度关键词推广
  • 晋江做鞋子批发的网站免费域名注册服务网站
  • 福州做网站哪家公司好百度信息
  • 旅游网站建设最重要的流程免费外链网站
  • 惠安网站建设费用正规电商培训学校排名
  • 免费的网站模板五种新型营销方式
  • 虚拟机做网站有用吗上海百度推广方案
  • 一二三级域名有什么区别seo和点击付费的区别
  • 国外网站做盗版百度竞价返点开户
  • 淮南网站制作汕头网站推广排名
  • 做聚美优品网站得多少钱快速优化关键词排名
  • django做网站快吗海南百度竞价推广
  • 模块化html5网站开发使用软件提高百度推广排名
  • 南京做网站是什么seo搜索优化专员招聘
  • 帝国cms做漫画网站教程佛山网站优化排名推广
  • 智联招聘网站怎么做两份简历模板镇江网站制作公司