Vue中的props——向子组件传递数据

Vue中的props——向子组件传递数据

什么是props

​ prop,翻译为属性,props则是属性的复数,props是Vue组件中的一个属性,可以用来动态传递和修改数据

props如何使用(三种用法,一般使用第一种)

​ 1.数组型,只声明要进行传递的属性

props:["name","sex","age"]

​ 2.对象型,声明要传递的属性以及限制传递值的类型

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

​ 3.属性对象型,声明要传递的属性,限制传递值的类型,以及属性的必要性和属性的缺省值等等

props:{
	name:{
		type:String,
        require:true	//属性必要性:true表示属性必须进行传递
	},
    sex:{
		type:String,
        require:true,
        default:'未知'
    },
    age:{
		type:Number,
        default:18
    }
}

使用props需要注意的事项:

​ 1.需要用组件标签来传递属性,像这样:

<School name="异类小魔鬼" sex="男" age="18"></School>

​ 2.使用v-bind去传输数字,不然会传成字符串,造成输出错误

<School name="异类小魔鬼" sex="男" :age="18"></School>

​ 3.想要操作props传入属性的值,可以在data中创建一个新属性,将传入属性的值赋值给新属性,并用方法(methods)对其进行操作,如下

<template>
  <div>
    <h2>学生姓名:{{ name }}</h2>
    <h2>学生性别:{{ sex }}</h2>
    <h2>学生年龄:{{ myAge }}</h2>
    <button @click="addNumber">点我+1</button>
  </div>
</template>

<script>
export default {
  name: "Student",
  data() {
    return {
      //data内的值最终会被props覆盖掉
      //   name: "异类小魔鬼",
      //   sex: "男",
      //   age: 18,
      // 如果想要对props传进来的值进行操作,可以这样
      myAge: this.age,
      //然后利用方法对其进行操作
    };
  },
  methods: {
    addNumber() {
      this.myAge++;
    },
  },
  props: ["name", "age", "sex"],
};
</script>

​ 4.如果data中有与props中重名的属性,在页面上呈现时,data中的属性会被props中的属性覆盖掉

​ 5.props内的属性尽量和组件标签传进来的属性一一对应,不多,也不少

​ 6.使用props不可使用关键字,比如ref,key等等已经被命名好的标签属性

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

命中不缺狗——

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值