浙江高端建设网站广州网站建设讯度

pingmian/2026/1/26 3:47:05/文章来源:
浙江高端建设网站,广州网站建设讯度,用dw做网站怎么换行,推荐几个响应式网站做参考昨天才写了Rust的条件编译#xff0c;没想到这个问题还没完。 昨天我还为它的强大而赞叹不已#xff0c;自以为对它了解了八九成#xff0c;然而今天我才猛然意识到#xff0c;这个里面的深度远超我的想象。我估计#xff0c;我现在只了解其中的冰山一角吧。 故事从客户端…昨天才写了Rust的条件编译没想到这个问题还没完。 昨天我还为它的强大而赞叹不已自以为对它了解了八九成然而今天我才猛然意识到这个里面的深度远超我的想象。我估计我现在只了解其中的冰山一角吧。 故事从客户端post数据的后端api说起。 习以为常的思维影响着我解决问题的方式对于这种问题我通常会寻找一个库来处理后端的 API 交互问题。因此我在互联网上四处搜寻与 Yew SSR 开发相关的示例并发现大部分示例都使用了 reqwest 库。但是当时我并没有注意到一个细节这些示例都只调用了 get 方法却没有涉及到 post 方法的应用场景。 Yew官方给出的例子如下 #[cfg(feature ssr)] async fn fetch_uuid() - Uuid {// reqwest works for both non-wasm and wasm targets.let resp reqwest::get(https://httpbin.org/uuid).await.unwrap();let uuid_resp resp.json::UuidResponse().await.unwrap();uuid_resp.uuid }#[function_component] fn Content() - HtmlResult {let uuid use_prepared_state!((), async move |_| - Uuid { fetch_uuid().await })?.unwrap();Ok(html! {div{Random UUID: }{uuid}/div}) }因此我就顺着这个例子给出的reqwest来解决我要post数据到后端api的问题。 让我们细看一下官方给出的例子代码fetch_uuid带有条件编译#[cfg(featuressr)]也就是说这个函数只会在编译服务器端的target文件时才会编译进去然后看一下调用fetch_uuid的地方用的是use_prepared_state!宏它也会作用于服务器端。连起来理解就是在服务器端调用fetch_uuid函数来获取数据并将数据“发送”到客户端。这里的“发送”实际上就是wasm的加载过程也就是说在服务器端和客户端都可以看到这个值。理解了这段例子代码之后我们会发现这里的过程都发生在服务器端而不是客户端。我们要把数据post到后端api这个场景发生在wasm加载到浏览器之后由用户在UI上的操作发起的。 显然这段例子代码没有涉及到我的需求但是reqwest库中也有post的功能能不能通过reqwest库来实现我要把前端的数据post到后端api的这个需求呢 答案是NO。 首先聊一下SSR模式即服务器端生成在这个模式中针对后端api的访问就有两种情况 在服务器的运行环境中来访问后端api在浏览器端的wasm环境中来访问后端api 明白了这两种情况后我们就很好理解在Cargo.toml中的这段配置了。 [target.cfg(target_arch wasm32).dependencies] wasm-bindgen-futures 0.4 wasm-logger 0.2 log 0.4[target.cfg(not(target_arch wasm32)).dependencies] tokio { version 1.29.0, features [full] } warp 0.3 clap { version 4, features [derive] }这个配置说明wasm-bindgen-futures, wasm-logger, log这3个依赖只有在编译成wasm时才会有效而tokio, warp, clap这个3个依赖只有在编译成服务端代码时才会有效。 而reqwest依赖于tokio库因此reqwest只能用于服务器端的api处理不能用于浏览器端wasm环境中的api处理。当然你完全不用担心如果你在开发这类需求时会不会在这个地方配置出错完全不用担心这个问题因为编译器会把问题报给你。这一点总算是给Rust挽回了一点面子。 故事到这里还没有完彩蛋还在后面。 按照上面的Cargo.toml我最初在运行cargo clippy时总是报错说wasm_bindgen_futures::spawn_local不存在但后来发现运行trunk build index.html时这个错误又没了所以我就怀疑上了条件编译这一块。说明在运行trunk build index.html时它产生的目标是wasm。算了吧能够完成build也不错先把流程走通。但是后来再运行cargo run --featuresssr --binssr_server -- --dir dist时又报wasm_bindgen_futures::spawn_local不存在的错误。我想这里编译的是服务端代码它的编译目标应该是非wasm的。而wasm-bindgen-futures又是声明在wasm下面因此找不到wasm_bindgen_futures。所以我尝试把wasm-bindgen-futures一到[dependencies]下这下子都不报错了。 因此我觉得这里应该折射出一个问题即Yew的SSR开发模式中没有严格区分哪些代码要被编译成服务器端的target哪些代码要编译成客户端wasm的target。 当然最后的结局编译成功运行时也没有什么问题。 总结一下在Yew的SSR开发中虽然代码都在一个项目之内但是要注意区分代码和功能是哪些运行在服务器环境哪些运行在浏览器的wasm环境。可以通过指定特定目标架构的依赖项[target.cfg().dependencies]配合编译器来帮助我们发现错误。 说了这么多最终的代码如下 Cargo.toml reqwest { version 0.11.18, features [json] } gloo-net { version0.4.0, features[json, http]} wasm-bindgen-futures 0.4[target.cfg(target_arch wasm32).dependencies] wasm-logger 0.2 log 0.4[target.cfg(not(target_arch wasm32)).dependencies] tokio { version 1.29.0, features [full] } warp 0.3客户端发起post请求的代码 let on_save {Callback::from(move |editorData: EditorData| {spawn_local(async move {if let Ok(req) Request::post(/notes).json(editorData) {let _ req.send().await;} else {log!(invalid json);}})})};今天的故事就讲到这里里面有不对的地方还望大家多多指教。终于要到后端的开发了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

公司营销型网站开发服务号 wordpress

本小程序通过代码和注释,介绍了easyX窗口及控制台窗口的设置方法;还介绍了easyX中关于颜色、线型、画圆、画方、显示文字以及鼠标消息处理等函数的使用方法。为便于理解,本程序同时使用控制台和easyX窗口,由控制台控制程序运行、由…

南昌网站开发网页制作项目简介范文

Windows 恢复环境 (Windows RE) 是一个能修复无法启动操作系统的常见问题的恢复环境。Windows 预安装环境 (Windows PE) 是具有有限服务的最小 Win32 操作系统。Windows RE 建立在 Windows 预安装环境 (Windows PE) 的基础上,并且可以用附加的驱动程序、语言、Windo…

平面设计师常用的网站属于免费的网络营销方式

具有从属引用的 LDAP 分页查询未正确处理09/14/2020本文内容本文提供了一些方法来避免使用从属引用的 LDAP 分页查询未正确处理的问题。原始产品版本: Windows 8原始 KB 编号: 2561166症状你有一个应用程序,使用 ldap_search_ext 或 ldap…

吴桥做网站新版wordpress编辑器不好用

redis:一个key-value系统 Redis 与其他 key - value 缓存产品相比有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提…

头像生成器在线制作软件关键词推广优化

从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。 示例 …

网站地图链接怎么做中国建设招标网?官方网站

聊城市2021年中考查分时间大约是6月27日。各普通高中要于7月10日前在校内张榜公布录取考生名单,并签发录取通知书。聊城中考录取时间各普通高中要于7月10日前在校内张榜公布录取考生名单,并签发录取通知书。所有学校均不得违规招收已被其他学校录取的考生…

有哪些做的比较精美的网站网站开发语言p

文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 目前还没有一个好的皮克斯迪士尼风格的卡通模型,所以我决定自己制作一个。这是将皮克斯风格模型与我自己的Loras合并在一起,创建一个通用的…

永久免费做网站appwordpress万能主题

PS:在"[ ]"中的所有数据都是可修改的 添加表字段 ALTER TABLE [表名] add [添加的新字段名] [添加新的数据类型] COMMENT [昵称] alter:修改(后面一般加table表示修改表) add:添加一个字段 在这个里面c…

电子商务网站建设与维护期末答案专业做轮胎的网站

介绍 当我们使用虚拟网卡的时候,有时候需要为虚拟网卡配置随机的MAC地址。我们知道,网卡的MAC地址实际上是一个6字节的整型数,通常表现为用英文冒号(:)隔开的十六进制字符串(全部大写或者全部小写&#xf…

扶贫工作网站建设方案pageadmin模板

用户级别配置文件 ~/.vimrc 修改用户级别的配置文件只会影响当前用户, 不会影响其他的用户. 例如: 在用户的家目录下的.vimrc文件中添加 set tabstop4 ----设置缩进4个空格 set nu ----设置行号 set shiftwidth4 —设置ggG缩进4个空格, 默认是缩进8个空格 系统级别配置文件 /e…

深圳网站设计公司电wordpress拼团程序

二叉树进阶题目 606. 根据二叉树创建字符串解题思路及实现 102. 二叉树的层序遍历解题思路及实现 107. 二叉树的层序遍历 II解题思路及实现 606. 根据二叉树创建字符串 描述 给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号…

邯郸网站建设设计可以做外国网站文章

雪花算法(Snowflake ID)是 Twitter 开源的一种分布式 ID 生成算法,其目的是生成全局唯一的 ID。该算法的核心思想是将一个 64 位的二进制数字分成几个部分,每个部分表示不同的信息,例如数据中心ID、机器ID、序列号等。…

做公司网站的理念wordpress爆破

前言 在eclipse中有Workspace(工作空间)和 Project(工程)的概念在 IDEA中只有 Project(工程)和 Module(模块)的概念。这个地方刚开始用的时候会很容易理不清它们之间的关系。在eclip…

功能型网站制作多少钱网站建设行业产业链分析

迄今为止,看到的函数中,卷积的操作发生在OpenCV函数的内部。理论上,图像卷积就是将内核与图像覆盖区域对应位置相乘之后求和。从调用函数上来看,它需要一个数组参数来描述内核。在实践层面,有一个重要的微妙因素会对结…

绍兴做微网站北京那家建网站好

好电脑、好主板、好网卡、好运营商、好套餐,是不是就意味着有了极好的网络体验呢?对,但也未必。因为还少算了最后一道关卡——网线。▌线材网线这个东西,看着还真都差不多,插上就能用这能有什么差别呢?首先…

中国互联网数据平台官网网站优化3个关键词和10个关键词的区别

文章目录 Java 企业级支柱Java 在企业级应用中的地位后端开发的支柱Java生态系统的强大 前端:蓬勃发展的创新引擎新技术的涌现用户体验的重要性 Java的演进与创新云原生时代的 Java开发效率和生态系统 前端技术的未来走向WebAssembly 的崛起可访问性和国际化的重要性…

营销网站建设哪家快做音乐网站要求

下面是我给大家整理的利用JS使用POST方式提交请求的方法,有兴趣的同学可以去看看。一般都是写上隐藏的form标签,用来调用js函数然后submit全部用js来写也行,以下是我在一个问答频道看见别人写的例子,放在这里function post(URL, P…

揭阳网站制作软件网络营销与策划ppt

1 处理过程可视化 原始数据 直通滤波过滤后 pcl::ProjectInliers结果 pcl::ExtractIndices结果 凹包结果 凸包结果 2 处理过程分析: 原始点云 ---> 直通滤波 --> pcl::SACSegmentation分割出平面 -->pcl::ProjectInliers投影 --> pcl::ConcaveHull凹包…

农家乐网站 建设潢川手机网站建设

分页组件常见于管理系统的列表查询页面,数据量巨大时需要分页的操作。 当数据量过多时,使用分页分解数据。 1.如何使用? /*设置layout,表示需要显示的内容,用逗号分隔,布局元素会依次显示。prev表示上一页…

网站建设有什么样好的建设意见在网上怎么赚钱?

2012年年底掏钱参加的java的培训,13年初找JAVA工作,发现很难找,公司需要的都是有工作经验的,刚刚从培训机构出来的学生不受欢迎,工作很难找,一个月之后打算退而求其次,找了份PHP的工作(那时对ph…