标题:使用陶里(Tauri
Rust的有雾吗?错了,这太难学习了,它将直接完成。只需使用最经典的框架使用经典的实际战斗项目,我们就会意识到Rust+Sqlite作为后端 - 末端,作为前部的反应- 端交叉 - 平台桌面应用应用程序
虽然很容易根据官方文件构建一个新项目。
但是,我使用PNPM作为软件包管理。PNPM创建项目运行如下
我们选择使用该创建,然后使用React-TS模板
然后等待CLI安装完成依赖项,然后使用VSCODE打开项目。建议您安装它,但我想应该建议生锈安装它。那么我们的项目目录如下
存储前端项目内容的SRC和Rust后端SRC-Tauri与Web界面的开发相同。但是,它与电子不同。
首先,我们直接使用TODONVC项目提供的CSS安装
然后将其引入入口文件,然后删除原始正式文件。
然后创建一个新的组件目录并创建一个待办事项组件
和Todolist组件
然后在app.tsx中的原始模板中删除代码,并将其介绍给托尔顿派并显示。
然后开始陶里以查看效果
但是,此部分只是显示一个简单的HTML结构和相应的CSS样式,没有任何功能
首先实现Web界面函数,首先考虑Rust Back -End操作,首先了解Tauri如何通信
根据官方文件,我们可以在窗口上安装。建议打开调试一段时间。
然后,我们可以使用调用来调用Rust后端提供的方法
以下操作在目录下
首先添加rusqlite依赖项以获得操作SQLite的能力
关于Rusqlite的使用情况,我们创建了一种创建数据库连接的方法。
然后,我们可以实施更多方法来增加数据库,但是要编写太多方法以每次创建数据库连接,然后断开连接,这更麻烦,因此我们可以实现一个结构来封装常用的方法。
首先,让我们设计数据库表结构
TODO表是相对简单的结构,构建表语句:
然后,我们创建一个新的模块,并构建一个待办事项结构作为供将来使用的数据库行类型。这是酒吧,因为当我们在Main中使用时,我们可能会访问这些属性
和托多普结构,但暂时没有实现内部方法
然后是抽象凝乳的几个成员。由于不存在RUST,新的关键词,我们构建了一个类对象。通常,有同意构建相应类的同意。实际上,所谓的结构是返回带有Impl的结构。
因此添加以下实现
枚举类型的使用是因为返回。我们希望使用错误通信来简化错误过程处理(尽管此方法没有错误,因此仅仅是为了简化过程)
然后,我们可以构造一个待办事项类,并使用unwrap()在枚举类型中拆卸OK,这是我们返回的托多普
,硬删除(lānde)实施
查询所有TODO,几种方法等的所有方法。此方法可以接收参数,然后在传输参数转换为调用时查询并返回句子。
在这里,我们使用如何获取迭代器。通过遍历迭代器,我们获得了托多对象的数组,然后通过枚举包装
请注意,使用遗传控制方法传递通用参数,称为第6行。
因为Sqlite中没有布伦类型,所以我们使用数字来识别1或1的true或false。请记住要处理这两个字段
因此,我们可以在SQLITE中获取数据,但是我们仍然需要为前端呼叫提供命令。我们返回main.ts,首先介绍模块并导入todo和todoApp
返回数据序列化
写作命令后,我发现注释已报告。
这是因为我们返回的不是串行的类型,该类型无法通过指令返回到todo.rs的前端
然后,我们在接口上正确单击并检查控制台,然后输入应看到的空气阵列。
调用参数返回序列化
实际上,序列化和深层化的原因与从前端和后端分开的Web应用程序相同。JSON格式在传输层中使用,但是应用程序需要真实的对象,因此您需要通过注释将序列化和避免界面添加到对象中。
同时,Invoke方法还可以接受第二个参数作为称为CONSOND的参数,但是参数还需要具有从JSON格式执行的能力。
除了使用返回方法外,我们还可以从直接的SQL语句(例如此新的TODO)中从Invoke获得一个TODO参数,然后将其辨别到对象中,然后该结构获得ID和标签。
以同样的方式,这里的代码列不多。给出功能签名。这里的返回值愿意通过结果包装或未打包。这应该不是一个大问题。这取决于个人喜好。
同样,您还需要增加相应的说明
而且不要忘记增加generate_handler
在这一点上,我们基本上完成了TODOMVC的后端。接下来,使用React + Jotai +在下一部分中使用一些软件包来完成此应用程序的前端以及与Rust后端的通信。