建站seo推广,企业管理培训课程排行榜,云南效果好的网站优化,做网站查询违章父传子defineProps
基本概念
在 Vue 3 中#xff0c;父传子是一种组件间通信的方式#xff0c;用于将父组件的数据传递给子组件。这种通信方式可以让组件之间更好地协作#xff0c;实现功能的复用和模块的划分。
实现步骤
在父组件中传递数据 App.vue
template…
父传子defineProps
基本概念
在 Vue 3 中父传子是一种组件间通信的方式用于将父组件的数据传递给子组件。这种通信方式可以让组件之间更好地协作实现功能的复用和模块的划分。
实现步骤
在父组件中传递数据 App.vue
templateHeader propsName夏天学编程 propsUrlxiatian /button clickcountAdd点击/buttonFooter :propsWeb /
/template
script setupimport {reactive} from vue;import Header from ./header.vue;import Footer from ./footer.vue;const propsWeb reactive({user:夏天,url:biancheng,count:10})const countAdd () {propsWeb.count;console.log(propsWeb.count);}
/script在子组件中接收数据 在子组件header.vue和footer.vue中需要使用props来接收父组件传递过来的数据。 首先通过defineProps函数定义了一个props对象它包含多个属性并且指定了其类型。这是一种类型检查的方式可以确保传递的数据类型符合预期。然后将props里面的属性值赋值给propsWeb变量这样就可以在子组件的模板中使用propsWeb来显示父组件传递过来的数据了。
header.vue
templateh3Header/h3
/template
script setupconst props defineProps([propsName,propsUrl])console.log(props)
/scriptfooter.vue
templateh3Footer/h3
/template
script setup
const props defineProps({user: String,url: {type: String,Required: true,default: xiatian.com,},count: Number,
});
console.log(props);
/script数据类型检查和默认值
类型检查
在defineProps中可以对传递的数据进行类型检查除了String类型还可以是Number、Boolean、Object、Array等。
设置默认值
可以为props设置默认值当父组件没有传递相应的数据时子组件就会使用默认值。
动态数据传递
父组件传递的数据可以是动态变化的。例如父组件中有一个按钮点击按钮可以改变传递给子组件的数据。 当点击按钮时count的值会改变这个变化会自动传递给子组件子组件会根据新的数据进行更新。这是因为 Vue 的响应式系统会自动跟踪数据的变化并更新与之相关的组件。 子传父defineEmits
基本概念
在 Vue 3 中子传父是组件间通信的重要方式。它允许子组件将数据或事件传递给父组件从而实现组件之间的反向通信这在构建复杂的应用程序结构时非常有用。
实现步骤
在父组件中监听事件并接收数据 App.vue
templateHeader gitWebemitsGitWeb userAddemitsUserAdd/{{ web.url }} - {{ user }}
/template
script setupimport { ref, reactive } from vueconst web reactive({name: 夏天,url: xiatian.com})const user ref(0)const emitsGitWeb (data) {console.log(data)}const emitsUserAdd (data) {console.log(data)user.value data}
/script在子组件中触发事件
header.vue
templatedivh1我是header/h1button clickadd点击/button/div
/template
script setupconst emits defineEmits([gitWeb,userAdd])emits(gitWeb,{name:夏天学编程,url:www.xiatian.com})// 子组件可以向父组件传递多个参数。const add (){emits(userAdd,10)}
/script事件名规范和注意事项
事件名规范
自定义事件名最好遵循一定的命名规范比如使用小写字母和连字符的组合这样可以提高代码的可读性。避免使用大写字母开头的驼峰命名法因为在 HTML 模板中事件名是大小写不敏感的可能会导致一些难以发现的问题。
注意事项
父组件在监听子组件事件时方法名要正确匹配。如果方法名拼写错误或者没有正确定义那么在子组件触发事件时父组件将无法正确接收和处理数据。同时要注意defineEmits函数定义的事件名和子组件中emits触发的事件名要一致否则事件无法正常触发。