이 글은 VuePress의 실제 경험을 공유할 것입니다. 이 글을 통해 VuePress + Github 페이지를 사용하여 블로그를 빠르게 구축하는 방법을 알려드리겠습니다.
최근 TypeScript 공식 문서인 Hanbook의 번역을 완료했습니다. 총 14개의 기사가 있으며 이는 중국 최고의 TypeScript4 입문 튜토리얼 중 하나라고 할 수 있습니다. 누구나 쉽게 읽을 수 있도록 VuePress + Github Pages를 사용하여 블로그를 구축했습니다. 블로그 효과는 다음과 같습니다.
0. 간단한 스타일과 구성을 갖춘 Vue 기반의 정적 웹 사이트 생성기 또한 비교적 간단합니다. VitePress
VuePress@next
를 선택하지 않기 때문입니다. 아직은 베타 단계이므로 안정화된 후 마이그레이션을 시작하겠습니다. [관련 권장사항: "vue.js Tutorial"]1. 로컬 구성빠른 시작VuePress 공식 웹사이트와 동일
:1. 원하는 패키지를 만들고 입력하세요. 관리 서버를 초기화합니다// 文件名自定义 mkdir vuepress-starter && cd vuepress-starter3. VuePress를 로컬 종속성으로 설치합니다
yarn init # npm init4. VuePress는 문서를 문서 루트 디렉터리로 사용하므로 이 README.md는 홈페이지
yarn add -D vuepress # npm install -D vuepress5와 같습니다. . package.json
mkdir docs && echo '# Hello VuePress' > docs/README.md6에 일부 스크립트를 추가합니다. 로컬에서 서버를 시작합니다
{ "scripts": { "docs:dev": "vuepress dev docs", "docs:build": "vuepress build docs" } }VuePress는
http://localhost:8080
에서 핫 리로드된 개발 서버를 시작합니다(새 창에서 열림). 2. 기본 구성문서 디렉터리에 모든 VuePress 관련 파일이 위치할.vuepress
디렉터리를 만듭니다. 이 시점에서 프로젝트 구조는 다음과 같을 수 있습니다. yarn docs:dev # npm run docs:dev
.vuepress
폴더 아래에 config.js
를 추가하여 SEO를 용이하게 하기 위해 웹 사이트의 제목과 설명을 구성합니다. : . ├─ docs │ ├─ README.md │ └─ .vuepress │ └─ config.js └─ package.json현재 인터페이스는 다음과 유사합니다:

3. 탐색 모음 추가.vuepress
目录,所有 VuePress 相关的文件都会被放在这里。此时你的项目结构可能是这样:module.exports = {
title: 'TypeScript4 文档',
description: 'TypeScript4 最新官方文档翻译'
}
在 .vuepress
文件夹下添加 config.js
,配置网站的标题和描述,方便 SEO:
module.exports = { title: '...', description: '...', themeConfig: { nav: [ { text: '首页', link: '/' }, { text: '冴羽的 JavaScript 博客', items: [ { text: 'Github', link: 'https://github.com/mqyqingfeng' }, { text: '掘金', link: 'https://juejin.cn/user/712139234359182/posts' } ] } ] } }
此时界面类似于:
3. 添加导航栏
我们现在在页首的右上角添加导航栏,修改 config.js
:
. ├─ docs │ ├─ README.md │ └─ .vuepress │ └─ config.js | └─ handbook | └─ ConditionalTypes.md | └─ Generics.md └─ package.json
效果如下:
更多的配置参考 VuePress 导航栏:
https://vuepress.vuejs.org/zh/theme/default-theme-config.html#%E5%AF%BC%E8%88%AA%E6%A0%8F
4. 添加侧边栏
现在我们添加一些 md 文档,目前文档的目录如下:
module.exports = { themeConfig: { nav: [...], sidebar: [ { title: '欢迎学习', path: '/', collapsable: false, // 不折叠 children: [ { title: "学前必读", path: "/" } ] }, { title: "基础学习", path: '/handbook/ConditionalTypes', collapsable: false, // 不折叠 children: [ { title: "条件类型", path: "/handbook/ConditionalTypes" }, { title: "泛型", path: "/handbook/Generics" } ], } ] } }
我们在 config.js
配置如下:
npm install vuepress-theme-reco --save-dev # or yarn add vuepress-theme-reco
对应的效果如下:
5. 更换主题
现在基本的目录和导航功能已经实现,但如果我还想要加载 loading、切换动画、模式切换(暗黑模式)、返回顶部、评论等功能呢,为了简化开发成本,我们可以直接使用主题,这里使用的主题是 vuepress-theme-rec(https://vuepress-theme-reco.recoluan.com/):
现在我们安装 vuepress-theme-reco:
module.exports = { // ... theme: 'reco' // ... }
然后在 config.js
里引用该主题:
--- title: 条件类型 author: 冴羽 date: '2021-12-12' ---
刷新一下页面,我们会发现一些细节的改变,比如加载时的 loading 动画、以及支持切换暗黑模式:
6. 添加文章信息
但我们也会发现,像条件类型这一篇文章,条件类型(Conditional Types)
config.js
를 수정하세요:module.exports = { // ... locales: { '/': { lang: 'zh-CN' } }, // ... }효과는 다음과 같습니다:🎜🎜
🎜자세한 구성은 다음을 참조하세요. VuePress 탐색 모음: 🎜🎜https://vuepress.vuejs.org/zh/theme /default-theme-config.html#%E5%AF%BC%E8%88%AA%E6%A0%8F🎜
4. 사이드바 추가 🎜🎜이제 일부 md 문서를 추가합니다. 현재 문서 디렉터리는 다음과 같습니다. 🎜module.exports = {
//...
themeConfig: {
subSidebar: 'auto'
}
//...
}
🎜 config.js에서 구성합니다. 🎜<pre class='brush:php;toolbar:false;'>$accentColor = #3178c6</pre>🎜해당 효과는 다음과 같습니다. 🎜🎜<img src="https:%20//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b53be542e6134a0c8637034cf4048618~tplv-k3u1fbpfcp-watermark.%20awebp" alt="" loading="lazy" class="medium-zoom-image">🎜5. 테마를 변경하세요🎜🎜이제 기본 디렉터리 및 탐색 기능이 구현되었지만, 로드, 애니메이션 전환, 모드 전환(다크 모드), 맨 위로 돌아가기, 댓글도 원할 경우에는 개발 비용을 단순화하기 위해 테마를 직접 사용할 수 있습니다. 여기서 사용한 테마는 다음과 같습니다. vuepress-theme-rec (https://vuepress-theme-reco.recoluan.com/): 🎜🎜이제 vuepress-theme -reco를 설치합니다: 🎜<pre class='brush:php;toolbar:false;'>// 通过检查,查看元素样式声明
.dark .content__default code {
background-color: rgba(58,58,92,0.7);
color: #fff;
}</pre>🎜그런 다음 <code>config.js
에서 테마를 참조합니다. >: 🎜.page .page-title {
display: none;
}
🎜페이지를 새로 고치면 로딩 중 로딩 애니메이션, 다크 모드 전환 지원 등 몇 가지 세부적인 변경 사항을 확인할 수 있습니다. :🎜🎜
🎜6. 기사 정보 추가🎜🎜그러나 조건부 유형에 대한 이 기사처럼 Conditional Types )
가 두 번 나타나는 것은 이 항목이 자동으로 첫 번째 큰 제목을 제목으로 추출하기 때문입니다. 이 기사에서는 각 기사의 md 파일에 몇 가지 정보 수정 사항을 추가할 수 있습니다. 🎜module.exports = {
// 路径名为 "/<REPO>/"
base: '/learn-typescript/',
//...
}
🎜이 때 기사의 효과는 다음과 같습니다. 🎜
Conditional Types )
가 두 번 나타나는 것은 이 항목이 자동으로 첫 번째 큰 제목을 제목으로 추출하기 때문입니다. 이 기사에서는 각 기사의 md 파일에 몇 가지 정보 수정 사항을 추가할 수 있습니다. 🎜module.exports = { // 路径名为 "/<REPO>/" base: '/learn-typescript/', //... }🎜이 때 기사의 효과는 다음과 같습니다. 🎜
但如果你不想要标题、作者、时间这些信息呢,我们可以在样式里隐藏,这个稍后会讲到。
7. 设置语言
注意,上图的文章时间,我们写入的格式为 2021-12-12
,但是显示的是 12/12/2021
,这是因为 VuePress 默认的 lang 为 en-US
,我们修改一下 config.js:
module.exports = { // ... locales: { '/': { lang: 'zh-CN' } }, // ... }
可以发现时间换了一种展示方式:
8. 开启目录结构
在原本的主题里,我们发现每篇文章的目录结构出现在左侧:
而 vuepress-theme-reco 将原有的侧边栏的中的多级标题移出,生成子侧边栏,放在了页面的右侧,如果你要全局开启,可在页面 config.js 里设置开启:
module.exports = { //... themeConfig: { subSidebar: 'auto' } //... }
此时效果如下:
9. 修改主题颜色
VuePress 基于 Vue,所以主题色用的是 Vue 的绿色,然而 TypeScript 的官方色则是蓝色,那如何修改 VuePress 的主题色呢?
你可以创建一个 .vuepress/styles/palette.styl
文件,文件代码如下:
$accentColor = #3178c6
此时可以发现主题颜色变了:
更多的颜色修改参考 VuePress 的 palette.styl。
10. 自定义修改样式
如果你想自定义修改一些 DOM 元素的样式呢?就比如在暗黑模式下:
我们发现用作强调的文字颜色比较暗淡,在暗黑模式下看不清楚,我想改下这个文字的颜色和背景色呢?
而 VuePress 提供了一种添加额外样式的简便方法。你可以创建一个 .vuepress/styles/index.styl
文件。这是一个 Stylus 文件,但你也可以使用正常的 CSS 语法。
我们在 .vupress 文件夹下创建这个目录,然后创建 index.styl 文件,代码如下:
// 通过检查,查看元素样式声明 .dark .content__default code { background-color: rgba(58,58,92,0.7); color: #fff; }
此时文字就清晰了很多:
那之前我们提到的隐藏每篇文章的标题、作者、时间呢,其实也是类似的方式:
.page .page-title { display: none; }
最后的效果如下:
11. 部署
我们的博客就算是正式的做好了,接下来我们部署到免费的 Github Pages 上。我们在 Github 上新建一个仓库,这里我取得仓库名为:learn-typescript
。
对应,我们需要在 config.js
添加一个 base
路径配置:
module.exports = { // 路径名为 "/<REPO>/" base: '/learn-typescript/', //... }
最终的 config.js
文件内容为:
module.exports = { title: 'TypeScript4 文档', description: 'TypeScript4 最新官方文档翻译', base: '/learn-typescript/', theme: 'reco', locales: { '/': { lang: 'zh-CN' } }, themeConfig: { // lastUpdated: '上次更新', subSidebar: 'auto', nav: [ { text: '首页', link: '/' }, { text: '冴羽的 JavaScript 博客', items: [ { text: 'Github', link: 'https://github.com/mqyqingfeng' }, { text: '掘金', link: 'https://juejin.cn/user/712139234359182/posts' } ] } ], sidebar: [ { title: '欢迎学习', path: '/', collapsable: false, children: [ { title: "学前必读", path: "/" } ] }, { title: "基础学习", path: '/handbook/ConditionalTypes', collapsable: false, children: [ { title: "条件类型", path: "/handbook/ConditionalTypes" }, { title: "泛型", path: "/handbook/Generics" } ], } ] } }
然后我们在项目 vuepress-starter
目录下建立一个脚本文件:deploy.sh
,注意修改一下对应的用户名和仓库名:
#!/usr/bin/env sh # 确保脚本抛出遇到的错误 set -e # 生成静态文件 npm run docs:build # 进入生成的文件夹 cd docs/.vuepress/dist git init git add -A git commit -m 'deploy' # 如果发布到 https://<USERNAME>.github.io/<REPO> git push -f git@github.com:mqyqingfeng/learn-typescript.git master:gh-pages cd -
然后命令行切换到 vuepress-starter
目录下,执行 sh deploy.sh
,就会开始构建,然后提交到远程仓库,注意这里提交到了 gh-pages
分支,我们查看下对应仓库分支的代码:
我们可以在仓库的 Settings -> Pages
中看到最后的地址:
마지막으로 생성한 주소는 https://mqyqingfeng.github.io/learn-typescript/
이제 VuePress 및 Github 페이지 배포가 완료되었습니다.
더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 소개를 방문하세요! !
위 내용은 VuePress + Github Pages를 사용하여 블로그를 구축하는 방법을 빠르게 알려주는 기사(실용)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Netflix는 React를 프론트 엔드 프레임 워크로 사용합니다. 1) React의 구성 요소화 된 개발 모델과 강력한 생태계가 Netflix가 선택한 주된 이유입니다. 2) 구성 요소화를 통해 Netflix는 복잡한 인터페이스를 비디오 플레이어, 권장 목록 및 사용자 댓글과 같은 관리 가능한 청크로 분할합니다. 3) React의 가상 DOM 및 구성 요소 수명주기는 렌더링 효율성 및 사용자 상호 작용 관리를 최적화합니다.

프론트 엔드 기술에서 Netflix의 선택은 주로 성능 최적화, 확장 성 및 사용자 경험의 세 가지 측면에 중점을 둡니다. 1. 성능 최적화 : Netflix는 React를 주요 프레임 워크로 선택하고 Speedcurve 및 Boomerang과 같은 도구를 개발하여 사용자 경험을 모니터링하고 최적화했습니다. 2. 확장 성 : 마이크로 프론트 엔드 아키텍처를 채택하여 응용 프로그램을 독립 모듈로 분할하여 개발 효율성 및 시스템 확장 성을 향상시킵니다. 3. 사용자 경험 : Netflix는 재료 -UI 구성 요소 라이브러리를 사용하여 A/B 테스트 및 사용자 피드백을 통해 인터페이스를 지속적으로 최적화하여 일관성과 미학을 보장합니다.

NetflixusesAcustomFrameworkCalled "Gibbon"BuiltonReact, NotreactorVuedirectly.1) TeamExperience : 2) ProjectComplexity : vueforsimplerProjects, 3) CustomizationNeeds : reactoffersmoreflex.4)

Netflix는 주로 프레임 워크 선택의 성능, 확장 성, 개발 효율성, 생태계, 기술 부채 및 유지 보수 비용을 고려합니다. 1. 성능 및 확장 성 : Java 및 SpringBoot는 대규모 데이터 및 높은 동시 요청을 효율적으로 처리하기 위해 선택됩니다. 2. 개발 효율성 및 생태계 : React를 사용하여 프론트 엔드 개발 효율성을 향상시키고 풍부한 생태계를 활용하십시오. 3. 기술 부채 및 유지 보수 비용 : Node.js를 선택하여 유지 보수 비용과 기술 부채를 줄이기 위해 마이크로 서비스를 구축하십시오.

Netflix는 주로 VUE가 특정 기능을 위해 보충하는 프론트 엔드 프레임 워크로 React를 사용합니다. 1) React의 구성 요소화 및 가상 DOM은 Netflix 애플리케이션의 성능 및 개발 효율을 향상시킵니다. 2) VUE는 Netflix의 내부 도구 및 소규모 프로젝트에 사용되며 유연성과 사용 편의성이 핵심입니다.

vue.js는 복잡한 사용자 인터페이스를 구축하는 데 적합한 점진적인 JavaScript 프레임 워크입니다. 1) 핵심 개념에는 반응 형 데이터, 구성 요소화 및 가상 DOM이 포함됩니다. 2) 실제 응용 분야에서는 TODO 응용 프로그램을 구축하고 Vuerouter를 통합하여 시연 할 수 있습니다. 3) 디버깅 할 때 VuedeVtools 및 Console.log를 사용하는 것이 좋습니다. 4) 성능 최적화는 V-IF/V- 쇼, 목록 렌더링 최적화, 구성 요소의 비동기로드 등을 통해 달성 할 수 있습니다.

vue.js는 중소형 프로젝트에 적합하지만 REACT는 크고 복잡한 응용 프로그램에 더 적합합니다. 1. Vue.js의 응답 형 시스템은 종속성 추적을 통해 DOM을 자동으로 업데이트하여 데이터 변경을 쉽게 관리 할 수 있습니다. 2. 반응은 단방향 데이터 흐름을 채택하고 데이터 흐름에서 하위 구성 요소로 데이터가 흐르고 명확한 데이터 흐름과 곤란하기 쉬운 구조를 제공합니다.

vue.js는 중소형 프로젝트 및 빠른 반복에 적합한 반면 React는 크고 복잡한 응용 프로그램에 적합합니다. 1) vue.js는 사용하기 쉽고 팀이 불충분하거나 프로젝트 규모가 작는 상황에 적합합니다. 2) React는 더 풍부한 생태계를 가지고 있으며 고성능 및 복잡한 기능적 요구가있는 프로젝트에 적합합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

드림위버 CS6
시각적 웹 개발 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
