赞
踩
赶时间的帅比可以跳过此段!项目重构差不多了,觉得有必要花几天事件整理一下重构过程中遇到的各种各样的问题及解决方案。我认为各种问题的出现的背后都是需求的驱使,所以我在文章书写的过程中,相对简单的以案例演示叙述,而相对特殊典型的尽量放出场景、聊需求,增加代入感的方式来叙述Vue3组件间通信的方式。
先准备一个清清爽爽的文件。结构目录如下⬇
项目重构时遇到的组件间通信有:
组件化开发,父组件向子组件传参的情景是极为常见、普遍的。
// 父组件传出 <script setup> import { reactive, ref } from 'vue' import childrenTest_oneVue from "./conponents/childrenTest_one.vue"; const name = "小明" const age = ref(18) const brother = [ '小红','小芳','小白' ] const info = reactive({ gender: '男', brithday: '2000/01/01' }) </script> <template> <childrenTest_oneVue :name="name" :age="age" :brother="brother" :info="info"/> </template> // -------------------分界线------------------------ // 子组件接收 <script setup> const props = defineProps({ name: { type: String }, age: { type: Number }, info: { type: Object }, brother: { type: Array } }) props.name = '小东' props.age = 19 props.info.gender = '女' props.brother[0] = '小猪' console.log(typeof props.name) console.log(props.age) console.log(props.info) console.log(props.brother) </script> <template> <span>姓名: {{ name }}</span> <br/><br/> <span>年龄: {{ age }}</span> <br/><br/> <span>基本信息: {{ info.gender }} {{ info.brithday }}</span> <br/><br/> <div> <span>兄弟姐妹: </span> <span v-for="(item,index) in brother" :key="index">{{ item }} </span> </div> </template>
浏览器及操作台输出⬇
浏览器渲染和操作台打印如上,可以得出以下几点结论:
ref
响应式处理 js 基础数据类型,使用reactive
响应式处理 js 引用数据类型,在传输之后在子组件原始数据类型的响应式会丢失,而引用数据类型的响应式会保留,最终都不影响在html文档中使用。Vue3的
setup
语法糖父组件向子组件传参就如上述。…
文章有问题之处还望评论斧正!
更多其他组件间通信文章链接放在下方⬇
Vue3组件间通信知识整理——子组件向父组件传参
Vue3组件间通信知识整理——兄弟组件之间通信
Vue3组件间通信知识整理——父组件调用子组件方法
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。