21vue学习_父组件通过props传递数据给子组件

本文通过一个Vue实例展示了组件的使用,将Vue实例看作父组件,通过属性传递数据给子组件`cpn`。文章详细介绍了如何在组件中定义并设置props的类型和默认值,包括数组和字符串,并通过`v-for`指令渲染列表。同时,强调了props的必填性及其重要性。
摘要由CSDN通过智能技术生成

1、vue实例可以看成是一个父组件。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title-hellovuejs</title>
</head>
<body>
    <div id ="app">
        <!-- 3.使用组件 -->
        <!-- <cpn v-bind:cmovies='movies' :cmessage='message'></cpn> -->
        <!-- 参数在这里绑定传入 -->
        <cpn :cmovies='movies' :cmessage='message'></cpn>
        <!-- 下面是没有传递时,默认值的测试 -->
        <!-- <cpn :cmovies='movies'></cpn> -->
    </div>
    <!-- 模板分离写法2 ,推荐,使用template标签-->
    <template id="cpn1">
        <div>
            <!-- <p>{{cmovies}}</p> -->
            <ul>
                <li v-for="item in cmovies">{{item}}</li>
            </ul>
            <h2>{{cmessage}}</h2>

        </div>            
    </template>

    <script src="../js/vue.js"></script>
    <script>
        const cpn ={
            template: '#cpn1',
            // (1)第一种写法
            // props: ['cmovies','cmessage'],
            //(2)第二种写法,以对象的形式还可以限制类型
            // props:{
            //     cmovies: Array,
            //     cmessage: String
            // },
            //(3)第三种方法,还可以提供默认值
            props:{
                cmovies: {
                    type: Array,
                    default(){
                        return []
                    }
                },
                cmessage: {
                    type: String,
                    default: "initaaa",
                    //required定义true后,则必须调用,否则报错
                    required: true
                }
            },            
            data(){
                return{}
            },
            methods:{
            }
        };
        //root组件
        const chen1 = new Vue({
            el: '#app',  //用于挂载要管理的元素
            data:{//定义数据
                message:'你好啊,helloword',
                movies: ['葫芦娃','大闹天宫','功夫熊猫']
            },
            components:{
                cpn
            }      
        })
    </script>
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值