먼저 Node.js와 Yarn 또는 npm이 설치되어 있는지 확인하세요. 그런 다음 명령줄을 통해 새 Nuxt.js 프로젝트를 만듭니다.
yarn create nuxt-app my-nuxt-project cd my-nuxt-project
생성 과정에서 UI 프레임워크, 전처리기 등의 옵션이 필요한지 여부를 선택하고 필요에 따라 구성할 수 있습니다.
Nuxt.js는 특정 디렉토리 구조를 따르며, 주요 디렉토리 중 일부는 다음과 같습니다:
├── .nuxt/ # Automatically generated files, including compiled code and configuration ├── assets/ # Used to store uncompiled static resources, such as CSS, images, fonts ├── components/ # Custom Vue components ├── layouts/ # Application layout files, defining the general structure of the page │ └── default.vue # Default layout ├── middleware/ # Middleware files ├── pages/ # Application routes and views, each file corresponds to a route │ ├── index.vue # Default homepage │ └── [slug].vue # Dynamic routing example ├── plugins/ # Custom Vue.js plugins ├── static/ # Static resources, will be copied to the output directory as is ├── store/ # Vuex state management file │ ├── actions.js # Vuex actions │ ├── mutations.js # Vuex mutations │ ├── getters.js # Vuex getters │ └── index.js # Vuex store entry file ├── nuxt.config.js # Nuxt.js configuration file ├── package.json # Project dependencies and scripts └── yarn.lock # Or npm.lock, record dependency versions
pages/ 디렉터리에 index.vue 파일을 만듭니다. 애플리케이션 홈페이지는 다음과 같습니다.
<!-- pages/index.vue --> <template> <div> <h1>Hello from Nuxt.js SSR</h1> <p>{{ message }}</p> </div> </template> <script> export default { data() { return { message: 'This content is server-rendered!' }; }, asyncData() { // Here you can get data on the server side // The returned data will be used as the default value of data return { message: 'Data fetched on server' }; } }; </script>
Nuxt.js 페이지 렌더링 프로세스는 서버 측 렌더링(SSR)과 클라이언트 측 렌더링(CSR)의 두 가지 주요 단계로 나뉩니다. Nuxt.js 페이지 렌더링의 세부 단계는 다음과 같습니다.
사용자가 브라우저에 URL을 입력하고 서버에 요청을 보냅니다.
서버가 요청을 받은 후 처리를 시작합니다.
Nuxt.js는 nuxt.config.js의 경로 구성(존재하는 경우)을 사용하거나 자동으로 페이지/ 디렉터리에서 경로를 생성합니다.
pages/index.vue 또는 Pages/about.vue 등 해당 페이지 파일이 식별됩니다.
Nuxt.js는 페이지 구성 요소에서 asyncData 또는 fetch 메소드를 찾습니다(존재하는 경우).
이러한 메소드는 API 또는 기타 데이터 소스에서 데이터를 가져오기 위해 서버 측에서 실행됩니다.
데이터를 얻은 후에는 직렬화되어 페이지 템플릿에 삽입됩니다.
Nuxt.js는 Vue.js의 렌더링 엔진을 사용하여 구성 요소와 미리 가져온 데이터를 HTML 문자열로 변환합니다.
HTML 문자열에는