URL как источник правды в Next.js App Router

Когда разработчик приходит в Next.js из обычного React SPA, он часто тащит с собой старую схему мышления. Есть поле ввода, значит будет useState . Есть поиск, значит будет useEffect . Есть список данных, значит будем следить за изменением состояния и вручную запускать новый запрос. На маленьком экране это вроде работает. Но очень быстро выясняется, что в приложении уже не одно состояние, а три. Есть значение в поле, значение в URL, данные, загруженные по одному из этих значений. Потом появляется четвёртая проблема. Кнопки Back и Forward начинают вести себя странно. Ссылкой на результат поиска неудобно делиться. А отладка превращается в угадайку, потому что не до конца понятно, что именно сейчас считается главным источником правды. В App Router это решается проще. Если фильтр является частью состояния страницы, его логично держать в URL. Тогда схема становится прямой: URL изменился -> сервер прочитал searchParams -> выполнил fetch -> отрендерил новый список. В этот момент Next.js начинает восприниматься как понятный инженерный инструмент.

https://habr.com/ru/articles/1016068/

#nextjs #nextjs_app_router #app_router #searchparams #url_state #server_components #react #javascript #вебразработка

URL как источник правды в Next.js App Router

Когда разработчик приходит в Next.js из обычного React SPA, он часто тащит с собой старую схему мышления. Есть поле ввода, значит будет useState . Есть поиск, значит будет useEffect . Есть список...

Хабр
About to start a solo web dev project. How are people tracking tasks these days? Trello was my go to many years ago. Tried Asana but the free version is limited. Use Jira in work but not a fan. Anything lightweight and open source out there? Ideally free? #WebDev #kanban #PHP #javascript
Uses for nested promises

0 comments

Lobsters
Ah yes, the riveting saga of modern web design: the eternal quest to "Enable JavaScript" so you can unlock the secrets of a mundane folder 🤯. Because who doesn't love being smacked with cookie prompts as you desperately attempt to read something so unimportant, you'll forget it by lunch? 🍪🔒
https://blog.dailydoseofds.com/p/anatomy-of-the-claude-folder #webdesign #JavaScript #cookies #UX #frustration #techhumor #HackerNews #ngated
Anatomy of the .claude/ Folder

A complete guide to CLAUDE.md, custom commands, skills, agents, and permissions, and how to set them up properly.

Daily Dose of Data Science
New CSS Features I'm Looking Forward to in 2026 - Amber Weinberg - Freelance Front-End WordPress Development

Fast loading, responsive front-end WordPress development using validated, accessible, and semantic coding practices.

Amber Weinberg - Freelance Front-End WordPress Development

I Built 1,700+ Free Browser Tools in 2 Weeks — Here's What Actually Works

Two weeks ago, I launched [tool.teamzlab.com](https://tool.teamzlab.com) with 1,700+ browser-based tools. No backend. No signups. No data collection. Everything runs client-side.

https://tool.teamzlab.com/

#webdev #opensource #showdev #javascript #productivity

Free Online Calculators & Tools — Teamz Lab Tools

Instant, no-login tools for work transitions, invoicing, and freelancing. Built by Teamz Lab.

Teamz Lab Tools
ICYMI , here's me showing off some audio work, from my 20 years in #JavaScript #development: https://github.com/MarquisdeGeek/WebMIDI Some examples of WebMIDI
from a talk I gave in #Cambridge last year #webaudio #webmidi
GitHub - MarquisdeGeek/WebMIDI: Some examples of WebMIDI

Some examples of WebMIDI. Contribute to MarquisdeGeek/WebMIDI development by creating an account on GitHub.

GitHub

Wait, what? There is a way to disable certain web component features via a static class field? Just randomly stumbled upon this in the specs. Can't find much documentation, but it works in Chrome and Firefox at least.

👉 https://html.spec.whatwg.org/multipage/custom-elements.html#dom-customelementregistry-define

#webcomponents #webdev #javascript

Global Organizations Matrix

Global Organizations Matrix :root { --ink: #0d0d0d; --paper: #f5f0e8; --gold: #c9a84c; --rust: #b94a2c; --slate: #2e3f52; --sage: #4a6741; --muted: #8a8070; --border: #d4c9b0; } * { margin: 0; padding: 0; box-sizing: border-box; } body { background: var(--paper); font-family: 'DM Sans', sans-serif; color: var(--ink); min-height: 100vh; padding: 40px 24px 60px; } /* Header */ header { text-align: […]

https://chanyewjoe.com/2026/03/27/global-organizations-matrix/

Global Organizations Matrix

Global Organizations Matrix :root { –ink: #0d0d0d; –paper: #f5f0e8; –gold: #c9a84c; –rust: #b94a2c; –slate: #2e3f52; –sage: #4a6741; –muted: #8a8070; &#821…

Chan Yew Joe
×