{"id":18427073,"url":"https://github.com/mindeng/nextjs-study","last_synced_at":"2025-04-13T19:38:33.772Z","repository":{"id":146400349,"uuid":"295428436","full_name":"mindeng/nextjs-study","owner":"mindeng","description":null,"archived":false,"fork":false,"pushed_at":"2020-09-15T03:28:51.000Z","size":137,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-16T08:27:25.993Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mindeng.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-14T13:42:04.000Z","updated_at":"2020-09-15T03:28:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"b3d50e33-8b7b-4ca0-a5e0-c0b185f44b90","html_url":"https://github.com/mindeng/nextjs-study","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindeng%2Fnextjs-study","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindeng%2Fnextjs-study/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindeng%2Fnextjs-study/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mindeng%2Fnextjs-study/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mindeng","download_url":"https://codeload.github.com/mindeng/nextjs-study/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248769280,"owners_count":21158791,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T05:09:35.495Z","updated_at":"2025-04-13T19:38:33.764Z","avatar_url":"https://github.com/mindeng.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 学习笔记\n\n## 创建示例工程\n\n```sh\nnpx create-next-app nextjs-blog --use-npm --example \"https://github.com/vercel/next-learn-starter/tree/master/learn-starter\"\ncd nextjs-blog\nnpm run dev\n```\n\n## 页面导航\n\n### Link 组件\n\n* Client-Side Navigation\n  * 相比 a 标签，不会重新加载整个页面，跳转速度更快\n  * 通过浏览器开发者工具修改 background 样式，可以验证这一点（跳转时背景色不变）\n* Code splitting and prefetching:\n  * 每个 page 的代码都是分离的，意味着加载更快\n  * 当 Link 出现在可视区域时，会自动预取该页面的代码，这样点击时可以做到几乎实时跳转（生产环境中）\n* Note:\n  * 如果需要链接到 Next.js 管理之外的链接，请使用 a 标签\n  * 如果需要增加属性，例如 className，增加到 a 标签上，例如：  \n\n    ```js\n    \u003cLink href=\"/\"\u003e\n        \u003ca className=\"foo\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n            Hello World\n        \u003c/a\u003e\n    \u003c/Link\u003e\n    ```\n\n### App 组件\n\n顶级组件，位于 pages/_app.js，该组件可以在页面跳转时保留状态。\n\n另外，全局 CSS 也只能在该文件中使用。\n\n## 资源文件，元数据和样式\n\nNext.js 内建支持 CSS 和 Sass。\n\npublic 目录下的文件，可作为根目录下的文件来引用。\n\n通过 Head 组件来修改 title、link 等 head 属性。\n\n[查看如何自定义 html 标签属性](https://nextjs.org/docs/advanced-features/custom-document) 。\n\n内建支持 styled-jsx，示例：\n\n```js\n\u003cstyle jsx\u003e{`\n        .container {\n          min-height: 100vh;\n          padding: 0 0.5rem;\n          display: flex;\n          flex-direction: column;\n          justify-content: center;\n          align-items: center;\n        }\n`}\u003c/style\u003e\n```\n\n默认组件内生效，不会影响其他组件。\n\n[使用 `classnames` 库来切换样式](https://nextjs.org/learn/basics/assets-metadata-css/styling-tips) 。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindeng%2Fnextjs-study","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmindeng%2Fnextjs-study","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmindeng%2Fnextjs-study/lists"}