"Vue.js defineProps"의 두 판 사이의 차이

잔글 (Jmnote님이 Vue.js defineProps 문서를 Vue.js defineProps() 문서로 이동했습니다)
잔글 (Jmnote님이 Vue.js defineProps() 문서를 Vue.js defineProps 문서로 이동하면서 넘겨주기를 덮어썼습니다)
 
(같은 사용자의 중간 판 10개는 보이지 않습니다)
1번째 줄: 1번째 줄:
==개요==
==개요==
;Vue.js defineProps
;Vue.js defineProps()


<syntaxhighlight lang='javascript'>
<syntaxhighlight lang='javascript'>
22번째 줄: 22번째 줄:
   msg: 'hello',
   msg: 'hello',
   labels: () => ['one', 'two']
   labels: () => ['one', 'two']
})
</syntaxhighlight>
==TypeScript==
<syntaxhighlight lang='html'>
<script setup lang="ts">
const props = defineProps({
  foo: { type: String, required: true },
  bar: Number
})
props.foo // string
props.bar // number | undefined
</script>
</syntaxhighlight>
<syntaxhighlight lang='html'>
<script setup lang="ts">
const props = defineProps<{
  foo: string
  bar?: number
}>()
</script>
</syntaxhighlight>
<syntaxhighlight lang='html'>
<script setup lang="ts">
interface Props {
  foo: string
  bar?: number
}
const props = defineProps<Props>()
</script>
</syntaxhighlight>
<syntaxhighlight lang='typescript'>
export interface Props {
  msg?: string
  labels?: string[]
}
const props = withDefaults(defineProps<Props>(), {
  msg: 'hello',
  labels: () => ['one', 'two']
})
</syntaxhighlight>
<syntaxhighlight lang='typescript'>
import type { PropType } from 'vue'
import type UserInfo from '@/types/UserInfo'
defineProps({
  userInfo: { type: Object as PropType<UserInfo>, required: true },
  size: { type: Number, default: 18 },
})
})
</syntaxhighlight>
</syntaxhighlight>


==같이 보기==
==같이 보기==
* [[defineEmits]]
* [[Vue.js defineEmits]]


==참고==
==참고==
* https://vuejs.org/api/sfc-script-setup.html#defineprops-defineemits
* https://vuejs.org/api/sfc-script-setup.html#defineprops-defineemits
* https://vuejs.org/guide/typescript/composition-api.html#typing-component-props


[[분류: Vue.js]]
[[분류: Vue.js]]

2023년 10월 19일 (목) 17:38 기준 최신판

1 개요[ | ]

Vue.js defineProps()
const props = defineProps({
  foo: String
})
const props = defineProps<{
  foo: string
  bar?: number
}>()
export interface Props {
  msg?: string
  labels?: string[]
}

const props = withDefaults(defineProps<Props>(), {
  msg: 'hello',
  labels: () => ['one', 'two']
})

2 TypeScript[ | ]

<script setup lang="ts">
const props = defineProps({
  foo: { type: String, required: true },
  bar: Number
})

props.foo // string
props.bar // number | undefined
</script>
<script setup lang="ts">
const props = defineProps<{
  foo: string
  bar?: number
}>()
</script>
<script setup lang="ts">
interface Props {
  foo: string
  bar?: number
}

const props = defineProps<Props>()
</script>
export interface Props {
  msg?: string
  labels?: string[]
}

const props = withDefaults(defineProps<Props>(), {
  msg: 'hello',
  labels: () => ['one', 'two']
})
import type { PropType } from 'vue'

import type UserInfo from '@/types/UserInfo'

defineProps({
  userInfo: { type: Object as PropType<UserInfo>, required: true },
  size: { type: Number, default: 18 },
})

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}