Vue CSR 기반 마이크로 전단 실현 방안 실천
이 글 의 시청자 들 은 새로운 프로젝트 에서 오래된 프로젝트 를 바 꾸 지 않 아 도 되 는 전제 에서 마이크로 애플 리 케 이 션 을 삽입 하 는 것 입 니 다.이 글 이 도움 이 된다 면:+1:!
핵심 요소
새로운 프로젝트 의 건설
프로젝트 의 구축 에 대해 서 는 여기 서 더 이상 자세히 설명 하지 않 겠 습 니 다.여러분 은Genesis프로젝트 가 빠르게 시작 되 는 문 서 를 직접 보 세 요.
컴 파일 코드 수정
import path from 'path';
import fs from 'fs';
import { Build } from '@fmfe/genesis-compiler';
import { ssr } from './genesis';
const start = async () => {
/**
*
*/
const build = new Build(ssr);
/**
* ,
*/
await build.start();
/**
* , ,
*/
const renderer = ssr.createRenderer();
/**
* CSR JSON
*/
const result = await renderer.render({ mode: 'csr-json' });
/**
* JSON
*/
fs.writeFileSync(
path.resolve(ssr.outputDirInClient, 'app.json'),
JSON.stringify(result.data, null, 4),
'utf8'
);
};
start();
만약 당신 이 공식 문서 에 근거 하여 간다 면,당신 은 스스로genesis.build.ts
서 류 를 수정 하면 됩 니 다.파일 이름 을 사용자 정의 했다 면await build.start()
방법 이 실 행 된 후에 렌 더러 를 만 들 고 CSR 렌 더 링 결 과 를 JSON 파일 에 저장 하면 됩 니 다.컴 파일 이 끝 난 후에 당신 이 얻 은 것 은 대략 이런 파일 입 니 다.
너 는 단지
client
디 렉 터 리 의 정적 파일 을 서버 에 배치 하면 됩 니 다.오래된 프로젝트 원 격 구성 요소 로드
정적 자원 의 기본 경로 가
/ssr-genesis/
라 고 가정 하면/ssr-genesis/app.json
을 통 해 이 파일 에 접근 할 수 있 습 니 다.오래된 프로젝트 에 원 격 구성 요 소 를 설치 하 십시오.
npm install @fmfe/genesis-remote axios
대응 하 는 경로 에서 원 격 구성 요 소 를 사용 하여 이 구성 요 소 를 불 러 오 면 됩 니 다.
<template>
<div class="app">
<RemoteView :fetch="fetch" />
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import axios from 'axios';
import { RemoteView } from '@fmfe/genesis-remote';
export default Vue.extend({
components: {
RemoteView
},
methods: {
async fetch() {
const res = await axios.get('/ssr-genesis/app.json');
if (res.status === 200) {
return res.data;
}
return null;
}
}
});
</script>
다 중 역사 모드 지원오래된 프로젝트 에서 역사 모드 를 사용 하면 하위 응용 프로그램 에서 도 역사 모드 를 사용 하면
router.push('/xxx')
여러 개의 역사 기록 이 생 길 수 있 습 니 다.이 문 제 를 해결 하기 위해 서 는 하위 응용 프로그램abstract
모드 를 사용 하거나@fmfe/genesis-app 을 사용 하여 여러 개의 Router 인 스 턴 스 를 사용 하여 역사 모드 에서 발생 하 는 BUG 를 처리 할 수 있 습 니 다.주의 하 세 요.새로운 프로젝트 에서@fmfe/genesis-app 포장 후의 Router 를 함께 사용 해 야 합 니 다.넓히다
/**
* CSR HTML
*/
const result = await renderer.render({ mode: 'csr-html' });
/**
* html
*/
fs.writeFileSync(
path.resolve(ssr.outputDirInClient, 'index.html'),
result.data
'utf8'
);
CSR 프로젝트 만 하려 면 html 만 렌 더 링 하면 됩 니 다.일반적인 CSR 프로젝트 와 마찬가지 로client
디 렉 터 리 를 서버 에 배치 합 니 다.총결산
GenesisVue SSR 의 렌 더 링 라 이브 러 리 일 뿐 프레임 워 크 가 아 닙 니 다.가장 기본 적 인 SSR 렌 더 링 능력 을 제공 할 뿐 입 니 다.
Vue CSR 기반 의 마이크로 전단 실현 방안 실천 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Vue CSR 마이크로 전단 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Vue Render 함수로 DOM 노드 코드 인스턴스 만들기render에서createElement 함수를 사용하여 DOM 노드를 만드는 것은 직관적이지 않지만 일부 독립 구성 요소의 디자인에서 특수한 수요를 충족시킬 수 있습니다.간단한 렌더링 예는 다음과 같습니다. 또한 v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.