12. props配置
App.vue
<template>
  <div>
    <Student name="呓语" sex="女" :age="20"></Student>
  </div>
</template>
<script>
import Student from "@/components/Student";
export default {
  name: "App",
  components:{Student},
  data(){
    return{
      msg:"欢迎学习Vue!"
    }
  },
}
</script>
<style scoped>
</style>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(){
    return{
      msg:"我是来自南方IT的学生!",
      myAge:this.age
    }
  },
  //简单声明接收
  props:['name','age','sex'],
  methods:{
    updateAge(){
      this.myAge++
    }
  }
  //接收的同时对数据进行类型限制
  // props:{
  //   name:String,
  //   age:Number,
  //   sex:String
  // }
  //接收的同时对数据进行类型限制+默认值的指定+必要性的限制
  // props:{
  //   name:{
  //     type:String, //name的类型是字符串
  //     required:true //name是必要的
  //   },
  //   sex:{
  //     type:String,
  //     required: true
  //   },
  //   age:{
  //     type:Number,
  //     default:99 //如果age为空,则默认值为99
  //   }
  // }
}
</script>
<style scoped>
</style>总结
实现的功能: 让组件接收外部传过来的数据
1.传递数据:
  <Student name="xxx"/>
2.接收数据:
  1.第一种方式:(只接收): 
     props:['name']
  2.第二种方式(限制类型):
     props:{
         name:String
     }
  3.第三种方式(限制类型,限制必要性,指定默认值)
     props:{
         type:String, //类型
         required:true, //必要性
         default:'老王' //默认值
     }
备注: props是只读的,Vue底层会检测你对props的修改,如果进行了修改,就会发出警告,若业务层需求要求需要修改,name请复制props的内容到data中一份,然后去修改data中的数据.
                    
                            
                            
1 条评论
建议引入反面案例,增强辩证性。