Vue 개발에서 흔히 볼 수 있는 방법과 기교 요약
export default {
name: ' ',
components: { // a},
created(){} //
beforeMount() {}, //
data: () => ({}), //
computed: {} //
methods: {} //
... //
}
요청 로드 상태 관리
async beforeMount(){
//
this.loading = true
try {
const data = await getUserInfo()
} catch (error) {
console.log(error)
} finally {
//
this.loading = false
}
}
Proxy 도메인 간
proxy: {
"/api": {
target: 'http://.......',
changeOrigin: true, //
ws: true, // socket
pathRewrite: {
//
"/api": '' //
}
},
....
}
개발자와build의 패키지를 서로 다른 설정합니다대부분의 개발자들은 Vue의 config를 하나의 파일에 쓰는 것을 좋아한다. 보기에는 문제가 없을 것 같지만 환경의 변화에 따라 프로젝트 최적화, WebPack 플러그인 등 맞춤형 설정이 들어오면 약간 혼란스러워진다. 이럴 때 단독 설정을 고려할 수 있다. 프로세스를 통해.dev는 각각 다른 환경에 대해 config를 도입하고 아래에 나의 설정 방식을 붙인다.나는 프로젝트 루트 디렉터리에 config 디렉터리를 새로 만들었는데, 그 안에 공공적인 방법을public로 포장했다.js 다른 것은 생산 환경과 오프라인 환경에 따라 구분된 번역을 한다.
-- config
--- dev.js
--- build.js
--- public.js
vue.config.js
# vue.config.js
const devConfig = require('./config/dev')
const buildConfig = require('./config/build')
module.exports = process.env.NODE_ENV === 'development' ? devConfig : buildConfig
계산 속성 실용성
//
computed: {
filterList: function () {
return this.showData.filter(function (data) {
//
return data.isShow
})
}
// DOM
<ul>
<li v-for="item in filterList" :key="item.id">
{{ item.name }}
</li>
</ul>
집합 방법
tableFactory(action) {
switch (action) {
case 'update':
...
break;
case 'create':
...
break;
case 'delete':
...
break;
default:
// ...
break;
}
}
Props에 대한 데이터 검증 사양 유지
props: {
test: {
type: String,
default: ''
},
test2: {
type: [Number, String],
default: 1
},
test3: {
required: false,
type: Object
}
}
어셈블리 이름 사용대부분의 경우, 구성 요소에 정의된name은template 템플릿에서 사용하는 이름입니다. vue에서 낙타봉 이름을 잘 해석했기 때문에 낙타봉 이름을 사용하는 것을 권장합니다.
// GanMessage.vue
export default {
name: 'GanMessage'
.....
}
//
components: {
[GanMessage.name]: GanMessage
}
//
<template>
<gan-message/>
</template>
템플릿 엔진 디버깅대부분의 경우template에 논리를 쓰는 것은 디버깅하기 매우 어렵고 효과를 직접 보는 것이기 때문에 일부 값에 대해 통제할 수 없기 때문에 개발 환경에서 나는 원형에 전체적인 console를 걸 것이다.log 방법 디버깅
vue.prototype.$logs = window.console.log;
//
<template>
{{$logs('1111')}}
</template>
데이터 가져오기 주기데이터에 대한 획득은 항상 논란이 있습니다. 대부분의 학우들은created에서 얻었죠. 저는 개인적으로 before Mount에서 백엔드 데이터 요청을 했습니다.
async beforeMount(){
const data = await getUserInfo();
}
async와await 사용하기대부분의 경우 Promise를 사용할 때 통과됩니다.then,.catch,.finally로 처리했습니다.그러나 사실 저는 async 비동기 함수를 사용하여 Pormise 처리를 하는 것을 더욱 추천합니다. 우리는 데이터를 얻기만 하면 됩니다. try 이상 포획을 통해 오류를 신속하게 조사하고 던질 수 있습니다.위에서 얻은 데이터의 생명주기를 참고하면 볼 수 있다
async beforeMount(){
try {
const data = await getUserInfo()
} catch (error) {
console.log(error)
} finally {}
}
watch
watch: {
obj: {
handler(newName, oldName) {
console.log('obj.a changed');
},
immediate: true,
deep:true
},
'obj.a': {
handler(newName, oldName) {
console.log('obj.a changed');
},
immediate: true,
// deep: true
}
}
사용자 정의 이벤트에서 이 값은 서브어셈블리에서 캡처된 값입니다.
<!-- Child -->
<template>
<input type="text" @input="$emit('custom-event', 'hello')" />
</template>
<!-- Parent -->
<template>
<Child @custom-event="handleCustomevent" />
</template>
<script>
export default {
methods: {
handleCustomevent (value) {
console.log(value) // hello
}
}
}
</script>
총결산Vue 개발에서 흔히 볼 수 있는 방법과 기교에 대한 이 글을 소개합니다. Vue 개발에서 흔히 볼 수 있는 방법과 기교 내용에 대해 더 많은 것을 소개합니다. 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.