Vue的props配置项

props配置项功能:让组件接收外部传过来的数据。


💜props配置项接收数据:第一种方式(只接收)

 

当一个组件使用多次的时候,要求里面的数据不同,所以在组件内部data数据就不能固定写死,需要通过props配置项使用动态的方式把数据传进去

 第一步需要在组件标签内属性标签属性:

<template>
  <div>
    <!-- 组件标签 -->
    <Student name="Mary" sex='女' age="18" />
    <hr>
    <Student name="Mike" sex='男' age="20" />
  </div>
</template>

第二步需要在组件里边通过props配置项把属性传入: 

    //数组里面顺序无所谓
    props:['name','age','sex']

最终输出效果:


💚props配置项接收数据:第二种方式(限制类型)

组件内props配置项这样写:

    props:{
      name:String,age:Number,sex:String
    }

组件标签内写法依旧和上面一样

这时候控制台就会报错提示:

在age="18"的age前面加上一个冒号:就能解决问题,加上冒号会把双引号里面的自动变成表达式

💛props配置项接收数据: 第三种方式(限制类型、限制必要性、指定默认值)

    props:{
     name:{
       type:String,//name的类型是字符串
       require:true //name是必要的
     },
     age:{
       type:Number,
       default:99 //默认值
     },
     sex:{
       type:String,
       require:true
     }
    }

一般require和default不会同时存在,因为如果要求是必传的就不需要默认值了

💙修改props里面的值

假如想要每点击一次按钮就让年龄+1,可以这样做:

首先在组件的data中添加一个属性myAge:this.age,然后在标签中通过插值语法{{addAge}}把数据放入标签,给button按钮添加一个点击事件@click="addAge",接着在methods中创建一个函数{addAge(){this.myAge++}}

组件代码:

<template>
  <div>
      <h1>{{msg}}</h1>
      <h2>学生姓名:{{name}}</h2>
      <h2>学生性别:{{sex}}</h2>
      <h2>学生年龄:{{myAge}}</h2>
      <button @click="addAge">点击年龄加1</button>
  </div>
</template>

<script>
export default {
  name:'Student',
    data() {
      return {
        msg:'我是一个勤学好问的学生',
        myAge:this.age
      }
    },
    methods: {
      addAge(){
        this.myAge++
      }
    },
    //数组里面顺序无所谓
    props:['name','age','sex']
}
</script>

输出效果:


🧡总结

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue中,props是用于父组件向子组件传递值的机制。通过使用props,我们可以在子组件中定义接收的propsprops的传递是单向的,即只能从父组件向子组件传递数据,子组件无法直接修改props的值。 通过在子组件中的props中定义接收的props,我们可以在子组件的生命周期钩子中访问和使用这些props的值。例如,在created钩子中可以通过this.foo来访问父组件传递的props值。 需要注意的是,props是只读的,如果直接对props中的数据进行修改,Vue会发出警告。如果需要对props进行修改,应该先将props中的内容复制一份到data中,然后修改data中的数据。这样可以避免直接修改props的值,从而遵循Vue的单向数据流原则。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Vue.jsprops的使用](https://blog.csdn.net/conving/article/details/127284655)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [Vue props配置](https://blog.csdn.net/weixin_57375608/article/details/127265492)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

super码力

么么哒,夏天来块儿冰西瓜!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值