Vue之props

  props配置项

1. 功能:让组件接收外部传过来的数据
2. 传递数据:```<Demo name="xxx"/>```
3. 接收数据:
    1. 第一种方式(只接收):```props:['name'] ```
    2. 第二种方式(限制类型):```props:{name:String}```
    3. 第三种方式(限制类型、限制必要性、指定默认值):
        ```js
        props:{
         name:{
         type:String, //类型
         required:true, //必要性
         default:'老王' //默认值
         }
        }
        ```
    > 备注:props是只读的,Vue底层会监测你对props的修改,如果进行了修改,就会发出警告,若业务需求确实需要修改,那么请复制props的内容到data中一份,然后去修改data中的数据。

Student.vue

复制代码
<template>
    <div>
        <h1>{{msg}}</h1>
        <h2>学生姓名:{{name}}</h2>
        <h2>学生性别:{{sex}}</h2>
        <h2>学生年龄:{{myAge+1}}</h2>
        <button @click="updateAge">尝试修改收到的年龄</button>
    </div>
</template>

<script>
    export default {
        name:'Student',
        data() {
            console.log(this)
            return {
                msg:'我是一个学生',
                myAge:this.age// 真要修改数据的话,可以在data中再做一个属性,更改data中的数据
            }
        },
        methods: {
            updateAge(){
                this.myAge++
            }
        },
        //简单声明接收
        // props:['name','age','sex'] 

        //接收的同时对数据进行类型限制
        /* props:{
            name:String,
            age:Number,
            sex:String
        } */ 
        //接收的同时对数据:进行类型限制+默认值的指定+必要性的限制
        props:{
            name:{
                type:String, //name的类型是字符串
                required:true, //name是必要的
            },
            age:{
                type:Number,
                default:99 //默认值
            },
            sex:{
                type:String,
                required:true
            }
        }
    }
</script>
复制代码

 

App.vue

复制代码
<template>
    <div>
        <!-- 在自定义的props值前面加:表示冒号内部是一个表达式,执行完这个表达式之后再将数据拿到Student组件中
        比如这样写:age="18+1"  结果是age="19" 因为age前有冒号:,所以双引号内部是一个表达式
        这样的话 age="18+1"  结果是age="18+1"  双引号内部就是一个简单的字符串,不是表达式 -->
        <Student name="李四" sex="女" :age="18+1"/>
    </div>
</template>

<script>
    import Student from './components/Student'

    export default {
        name:'App',
        components:{Student}
    }
</script>
复制代码

 

posted @   安静点--  阅读(205)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
历史上的今天:
2021-12-26 IOC控制反转
点击右上角即可分享
微信分享提示