父子组件传参
子组件中直接使用defineProps
来默认接收父组件传过来的参数
1 2 3 4 5
| type Props = { name:string, content:string } defineProps<Props>()
|
withDefault
方法定义默认props参数,withDefault方法接收两个参数,第一个参数固定defineProps(),第二个参数是个对象,定义默认参数
1 2 3 4 5 6 7 8 9 10 11
| <script setup lang="ts"> type Props = { name?:string, content?:string, list?: () => [] } withDefault(defineProps<Props>(),{ name:'我是默认name', content:'我是默认content' }) </script>
|
defineEmits
事件派发,子组件向父组件传递参数,子组件中定义事件
1 2 3 4 5 6 7
| <script setup lang="ts"> import { ref } from 'vue' const data = ref<number>(0) const emit = defineEmit(['on-click']) emit('on-click',data) </script>
|
父组件绑定自定义事件并定义接收参数的方法
1 2 3 4 5 6
| <Card @on-click="getItem"></Card> <script setup lang="ts"> const getItem = (i) => { console.log(i,'来自子组件的参数') } </script>
|