В этой части мы собираемся оживить наши часы!
Статьи в серии:
- Создание веб-приложений на Rust: Часть 1 — Введение
- Создание веб-приложений на Rust: Часть 2 — HTML и стилизация
- Создание веб-приложений на Rust: часть 3 — использование веб-API
Краткий обзор
Если вы имеете опыт работы с JavaScript, вашей первоначальной мыслью может быть: «Просто используйте useInterval, что может быть проще?» Тем не менее, именно здесь возникают сложности, если вы рассматриваете Rust. Даже после нескольких часов работы с Rust и освоения некоторых элементарных концепций вы получите компактный и аккуратный код. Но я не могу припомнить другого языка, который мог бы так усложнить обработку такого, казалось бы, тривиального вопроса. Тем не менее, стоит отметить, что с опытом он становится намного более управляемым.
Использование веб-API
Я хочу подчеркнуть, что цель этой статьи — дать представление о том, что значит разрабатывать исключительно веб-приложения с использованием Rust. Вот мой взгляд на это:
- Если ваша цель — создать веб-приложение, лучше всего подойдет TypeScript. Если возникает потребность в высокопроизводительных операциях, закодируйте их на Rust и экспортируйте в виде пакета npm с помощью wasm-pack.
- Если вашей целью является разработка кроссплатформенных приложений, избегайте прямого использования WEB API. Вместо этого выбирайте кроссплатформенные абстракции.
В этой статье мы рассмотрим, как использовать setInterval браузера. Это может показаться более сложным, чем ожидалось, но это даст нам возможность углубиться в три важнейших аспекта Rust: владение, замыкания и использование веб-API. Начнем с наименее «ржавого» — веб-API.
Использование веб-API в Rust
В основном, когда обсуждается Rust для Интернета, он часто ассоциируется с инструментом wasm-bindgen — это облегчает связывание высокого уровня между Rust и JavaScript. Вот некоторые ключевые функции, отмеченные в официальной документации:
- Импорт функций JS в Rust, таких как манипулирование DOM, ведение журнала консоли или мониторинг производительности.
- Экспорт ржавчины…