사업총화
1. 프로젝트 ssr 도입 후 페이지 404 리셋
해결 방법:
koa2-connect-history-api-fallback 플러그인 도입
구성 예:
const historyApiFallback = require('koa2-connect-history-api-fallback');
app.use(historyApiFallback({ whiteList: ['/api'] }));
2. vue 구성 요소가 불러오기를 늦추고 첫 페이지main.bundle.js 크기
해결 방법:
(1)es 제안의 import()
vue-router 구성 라우팅 게으름, 코드는 다음과 같습니다.
// 2 , webpackChunkName, js 。
const ImportFuncDemo1 = () => import('../components/ImportFuncDemo1')
(2) 비동기 부품 기술
{
path: '/promisedemo',
name: 'PromiseDemo',
component: resolve => require(['../components/PromiseDemo'], resolve)
}
3. 작업 후 페이지 새로 고침
하위 구성 요소가 부모 구성 요소에 상태를 전달하고provide와 inject를 사용하여 데이터를 주입하여 페이지를 새로 고칩니다
provide/inject 조합 사용하기
작용: 하나의 조상 구성 요소가 모든 자손 후대에 의존을 주입하도록 허용한다. 구성 요소의 차원이 아무리 깊어도 상하류 관계가 성립되는 시간에 시종 효력이 발생한다.
App.vue
reload 방법을 설명하고,router-view의 표시나 숨김을 제어하여, 페이지의 다시 불러오는 것을 제어합니다
tableList.vue
페이지에 App 주입vue 구성 요소 제공 (provide)의reload 의존, 논리가 완성된 후 (삭제 또는 추가) 직접this.reload () 호출을 사용하면 현재 페이지를 새로 고칠 수 있습니다.
4. 여러 줄이 생략된 경우 삭제되는 스타일도 있습니다 - 웹키트-box-orient
이것은 웹키트의 구덩이입니다. autoprefixer가 유행이 지난 스타일을 삭제해서 생긴 것입니다.
해결 방법:
보존된 스타일의 앞뒤에 주석autoprefixer 스위치를 설정하면 보존하면 됩니다.
주의: 웹 패키지에서 주석을 삭제하는 플러그인을 설정하면 위 방법은 작동하지 않습니다.autoprefixer 구성을 수정해야 합니다.
5. 이전 페이지에서 타이머가 지워지지 않았습니다.
해결 방법:
vue 구성 요소 내 내비게이션 수위 before Route Leave를 사용해서 제거하거나 구성 요소를 제거할 때 삭제합니다.
6. 암호를 전송하려면 암호화가 필요합니다.
해결 방법:
JSEncrypt를 사용하여 암호화를 위해 공개 키를 생성합니다.
7. 일부 페이지는 로그인 상태에서만 접근할 수 있으며, 로그인하지 않으면 바로login 페이지로 이동합니다
해결 방법:
루트의 메타 정보를 빌려 vuex,token과 결합하여store에 값을 부여하고 루트를 지킬 때 이 루트의 메타가 로그인해야 하는지 검사할 수 있습니다.가로막다.
8. 페이지 전환 시 페이지 맨 위로 창 이동
해결 방법:
윈도우로.scollTo(0, 0).
9.vue 멀티 페이지 응용 시 nginx 경로 설정 404
해결 방법:
nginx는 경로를 설정할 때 경로와 vue-router의base를 일치시켜야 합니다.
10.h5페이지 1인 1표 기능 실현
해결 방법:
쿠키의 판단에 따라 투표한 사용자를 대상으로 서버 set-cookie는 더 이상 투표에 참여할 수 없습니다.
11. 코드 구조 최적화
12. 윈도우즈에서 환경 변수를 설정할 수 없습니다
환경 변수는 nodejs 언어의 변수입니다. node에서 전역 변수process는 현재의 node 프로세스를 표시합니다.process.env는 시스템 환경에 대한 정보를 포함하고 있습니다.하지만 프로세싱은.env에는 NODE 이 없습니다.ENV 이거.NODE_ENV는 사용자가 정의한 변수로 웹 패키지에서 그 용도는 생산 환경이나 개발 환경을 판단하는 근거이다.
환경 변수의 역할은 우리가 공정화되어 포장되었을 때 각종 명령을 맞춤형으로 설정할 수 있도록 하는 것이다. 예를 들어 어떤 명령을 개발에서 실행하도록 요구하면 NODE 를 설정할 수 있다.ENV=development 및 환경 변수의 컨텐트를 직접 정의할 수 있습니다.vue-cli와 결합하여 분석할 수 있습니다.
크로스-env 플러그인을 패키지에 설치합니다.json에서 크로스-env를 추가하는 것을 설정합니다.
예:
'analyz': 'cross-env NODE_ENV=production npm_config_report=true npm run build';
여기에는 명령을 실행하기 전에 두 개의 환경 변수가 설정되어 있습니다
** 확장: **DefinePlugin은 전역 변수를 만들 수 있고 컴파일할 때 설정할 수 있기 때문에 이 속성을 사용하여 전역 변수를 설정하여 개발 환경과 공식 환경을 구분할 수 있습니다.이것이 DefinePlugin의 기본 기능입니다.그래서 우리는 웹 패키지에서config.js에 다음 코드 설정 전역 변수 정보를 추가합니다.
module.exports = {
plugins: [
//
new webpack.DefinePlugin({
PRODUCTION: JSON.stringify(true),
VERSION: JSON.stringify('5fa3b9'),
BROWSER_SUPPORTS_HTML5: true,
TWO: '1+1',
'typeof window': JSON.stringify('object'),
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV)
}
})
]
};
13. 웹팩3에서 웹팩4로 업그레이드
공통점:
1. 웹팩4는 입구점을 정의할 필요가 없다. 이것은./src/index.기본값으로 js
2、CommonsChunkPlugin 제거
3. 압축을 UglifyJS2로 업그레이드
4. JSON 및 Tree Shaking 지원
14.vue 루트 간 전달 매개 변수
두 가지 방법:
1,query: path 전달을 지원하고 url 뒤에 매개 변수와 값을 표시합니다
2. params:name 방식 전달을 지원하며 매개 변수와 값을 표시하지 않습니다
주의:query 전참, 페이지를 새로 고치면 인자를 잃어버리지 않습니다.근데 파람스는 삼을 잃어버려요.
15.vue 캐시 페이지
솔루션:
router-view에keep-alive를 싸서 캐시를 엽니다.
캐시가 필요한 페이지에 메타 루트 정보를 추가하여 페이지의 캐시를 제어합니다.
더 나아가beforeRouterLeave(to,from,next)를 사용하여 방문할 페이지에 캐시 데이터가 필요한지 유연하게 제어할 수 있다.
16. 일부 플러그인은 서버 렌더링에서 navigator is not defined 오류를 보고합니다.
원인은 두 가지로 나뉜다.
1. 일부 플러그인은 브라우저의api를 사용하여 서버에서 렌더링할 때 식별할 수 없으며 비동기적으로 불러오는 방식이 필요합니다.
이 때 import으로 가져올 수 없습니다. Require를 사용해야 합니다.
let hello
if (typeof window !== 'undefined') {
hello = require('hello')
}
2. 일부 플러그인은 다른 플러그인에 우선적으로 의존한다. 예를 들어bootstrap은 jquery에 의존한다.
이 때 jquery를 컴파일할 때 웹 패키지로 전역에 노출합니다. 예를 들어:
new webpack.ProvidePlugin({
$ : "jquery",
jQuery : "jquery",
"window.jQuery" :"jquery"
})
17. 정적 자원을 cdn에 놓고 끊으면
다음과 같은 코드를 사용하여 손쉽게 해결할 수 있습니다.
끊으면 뒤에 로컬 자원 라이브러리를 도입해야 합니다.
18. 검색 기능 모호 검색
watch 감청 속성을 사용하여 입력을 감청하고 절류 함수에 맞추며 결과를 얻기 전에 중간 상태를 설정할 수 있습니다.
19.vue 캐시 페이지 이후 캐시된 페이지를 삭제해야 합니다
솔루션:
루트의leave 생명주기나 이 구성 요소의 deactive 생명주기에서this.$를 사용할 수 있습니다destroy.캐시된 이 구성 요소를 혼비백산하십시오.그러나 이 구성 요소는 제거된 후에 더 이상 캐시되지 않는다는 단점이 있다.
그래서 keep-alive에 있는include 동적bind 하나의 그룹을 vuex로 동적으로 변경할 수 있습니다. 현재 캐시가 필요한component를 표시합니다.beforeRouterLeave를 사용하여 캐시 페이지 동적 제어
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.