prop向子组件传递数据
在组件代码中注册一些自定义属性,称为prop,在组件的props选项中定义,使用组件时,就可以把这些prop的名字作为原始属性名使用,通过属性向组件传递数据
1、prop基本用法
<div id="app"> <blog-content title="小明"></blog-content> <blog-content title="小红"></blog-content> </div> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <script> const vm = Vue.createApp({ }); vm.component('blog-content',{ props:['title'], template:'<h3>{{ title }}</h3>' }) vm.mount('#app'); </script>
2、组件之间传递数据
<div id="app"> <blog-content></blog-content> <blog-content></blog-content> </div> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <script> const vm = Vue.createApp({}); // 组件1 vm.component('blog-content',{ // 这里使用组件2名称 blog-title 绑定组件名称 将组件1的数据传递给组件2 template:'<h3><blog-title v-bind:date-title="msg"></blog-title></h3>', data:function(){ return{ msg:"组件1把数据传递给组件2" } } }) // 组件2 vm.component('blog-title',{ props:['dateTitle'], template:'<h3>{{ dateTitle }}</h3>' }) vm.mount('#app'); </script>
3、传递多个值
<div id="app"> <blog-content></blog-content> </div> <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script> <script> const vm = Vue.createApp({ }); // 组件1 vm.component('blog-content',{ template:'<div><blog-title :name="name" :price="price" :num="num"></blog-title></div>', data:function(){ return{ name:'苹果', price:'6.88元', num:'2800公斤' } } }) // 组件2 vm.component('blog-title',{ props:['name','price','num'], template:'<h3>{{name}} {{price}}{{num}}</h3>' }) vm.mount('#app') </script>
参考:
https://www.cnblogs.com/Huang-zihan/p/16340814.html#top