Blogger Information
Blog 67
fans 0
comment 2
visits 72035
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
VUE3组合式API setup语法糖 父组件与子组件的传值方式
搁浅
Original
423 people have browsed it

父组件

  1. <template>
  2. <zhapi
  3. :name="content"<!-- 传给子组件的值 --><!-- -->
  4. :fun="funzi"<!-- 可以把函数传给子组件使用 -->
  5. ref="showInfoRef"<!-- 父组件给子组件色值别名showInfoRef -->
  6. @handLer="hand"<!-- handLer子组件自定义的事件,hand是父组件的function,子传父内容 -->
  7. >
  8. <template
  9. v-slot:sl<!-- 插槽插入 -->
  10. #sl<!-- 插槽插入简写 -->
  11. >
  12. <div>插槽item内容<img src="#" /></div>
  13. </template>
  14. </zhapi>
  15. <button @click="funzi"></button>
  16. </template>
  17. <script setup>
  18. import {ref,provide} from 'vue';
  19. const showInfoRef = ref()
  20. const content = ref('张张')
  21. //把name提供出去,下面所有层级组件接收注入,如子组件、孙子组件,都接收依赖注入。
  22. provide("name", name);
  23. function funzi(){
  24. showInfoRef.value.zi()//父组件调用子组件的方法
  25. }
  26. function hand(e){
  27. console.log(e)//e是子组件传过来的数据
  28. }
  29. <script>

子组件

  1. <template>
  2. <div>父组件传过来的值:{{props.name}}</div>
  3. <button @click="expose">子组件暴露给父组件使用</button>
  4. <button @click="zifu">子传父</button>
  5. <slot name="sl"></slot>//插槽
  6. </template>
  7. <script setup>
  8. import {ref,inject} from 'vue';
  9. const name = inject("name");//接收依赖注入
  10. const props = defineProps({//子组件接收父组件传的值
  11. name: {
  12. type: String,//数据类型,数据类型传错了,会报错提示。
  13. default: "张张",//默认值
  14. required: true,//当前属性必传,不传也能运行,会报错提示。
  15. },
  16. age: {
  17. type: Number,
  18. default: 0
  19. },
  20. arr:{
  21. type:Array,
  22. default:[]
  23. },
  24. fun:{
  25. type:Function
  26. },
  27. })
  28. const ArrayList = reactive([
  29. {
  30. id: 1,
  31. name: "法外",
  32. },
  33. {
  34. id: 2,
  35. name: "狂徒",
  36. }
  37. ]);
  38. function zi(){
  39. console.log('父组件直接使用子方法')
  40. }
  41. const emits = defineEmits(["handLer"]);//使用defineEmits语法糖的方法来创建自定义事件。
  42. function zifu(){//子组件传值给父组件
  43. emits("handLer", ArrayList);//左边是你的自定义事件名,右边是你要传的数据。
  44. };
  45. function expose(){
  46. console.log(props.name)
  47. }
  48. // 把expose函数或者ArrayList值暴露出去给父组件使用,所有父组件要使用的数据,必须在这里暴露出去。
  49. defineExpose({
  50. expose,
  51. ArrayList
  52. })
  53. <script>
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post