[KDT]FCFE-6週5日vue(ライフサイクル、)
vue
lifecycle hook
beforeCreated, created, mounted, updated, unmounted
created、mountを多く使用します.
createは、構成部品を作成した後です.
マウントはhtmlに接続した後です.
テンプレート構文
補間法
{msg}とともに使用します.
v-onceインジケータを使用すると、データが変化しても、最初の配布後は更新されません.
computed
computed: {
reversedMessage: {
get(){
return this.masg.split('').reverse().join('')
},
set(value){
this.msg = value
}
}
},
methods: {
add(){
this.reversedMessage += '!?'
}
}
watch
データを監視し、変更後に実行します.
入力をmethodパラメータのデータ値に変更します.
クラスとスタイルのバインド
v-bind:class="{ active: isActive }"@click="activate"
isActiveがtrueの場合、クラスにactiveを追加します.
htmlのクラス名はdash-case、snake caseを使用するべきです.
<div :class="classObject"></div>
data(){
return {
classObject: {
active:true,
'text-danger': false,
}
}
}
data(){
return {
active: true,
error: null,
}
},
computed : {
classObject(){
return {
active: this.isActive && !this.error,
'text-danger': this.error && this.error.type === 'false'
}
}
}
条件文
if文で条件文を作成します.
templateラベルを使用するとif文を整理でき、htmlへの露出を回避できます.
<template>
<button @click="handler">
Click me!
</button>
<template v-if="isShow">
<h1>Title</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</template>
</template>
<script>
export default {
data(){
return {
isShow: true,
count:0
}
},
methods: {
handler(){
this.isShow = !this.isShow
this.count += 1
}
}
}
}
</script>
v-if vs v-show
v-showはfalseyではdisplay:none状態として表示されません.
v-showはtemplateでは使用できません.表示されません.
v-ifは実際の条件レンダリングであり、値がfalseyの場合、何もレンダリングされないことを示します.
v-if変換はコストが高く、v-show初期レンダリングはコストが高い.
頻繁に切り替える必要がある場合は、v-show(切り替え)
実行時の条件が変わらない場合、v-if(page)
Reference
この問題について([KDT]FCFE-6週5日vue(ライフサイクル、)), 我々は、より多くの情報をここで見つけました https://velog.io/@leedocs/KDT-FCFE-6주5일-vue-lifecycleテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol