rsnext/examples/with-shallow-routing/pages/index.js
Steven 4466ba436b
chore(examples): use default prettier for examples/templates (#60530)
## Description
This PR ensures that the default prettier config is used for examples
and templates.

This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).

## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)

## Related

- Fixes #54402
- Closes #54409
2024-01-11 16:01:44 -07:00

35 lines
1,002 B
JavaScript

import { useRouter } from "next/router";
import Link from "next/link";
import { format } from "url";
let counter = 0;
export async function getServerSideProps() {
counter++;
return { props: { initialPropsCounter: counter } };
}
export default function Index({ initialPropsCounter }) {
const router = useRouter();
const { pathname, query } = router;
const reload = () => {
router.push(format({ pathname, query }));
};
const incrementCounter = () => {
const currentCounter = query.counter ? parseInt(query.counter) : 0;
const href = `/?counter=${currentCounter + 1}`;
router.push(href, href, { shallow: true });
};
return (
<div>
<h2>This is the Home Page</h2>
<Link href="/about">About</Link>
<button onClick={reload}>Reload</button>
<button onClick={incrementCounter}>Change State Counter</button>
<p>"getServerSideProps" ran for "{initialPropsCounter}" times.</p>
<p>Counter: "{query.counter || 0}".</p>
</div>
);
}