vue学习笔记--非props特性和props特性

props是用来接收父组件数据的,子组件不可以直接更改props接收的数据,即单向数据流概念。
一、非props特性:
1.子组件未通过props接收,不能显示在dom上;


image.png

image.png

2.子组件模板内直接写入内容而非插值表达式,会显示在dom最外层标签上


image.png
image.png

二、props的特性
概括为父组件传,子组件接,dom标签内直接用


image.png

1、props大小写
props在接收一个非字符串模板使用在dom中的时候,需要转换成相应的短横线命名法,但是如果是字符串模板,就不用转换。
2.prosp类型
a.字符串
如:props:['title']
b.数组
如:props:[ 'title','auther','time' ]
c以对象形式列出的名称:类型
如:props:{
title:String
auther:Array
time: String
}
2、传递静待或动态的值类型给prop
数字、布尔值、数组、对象、对象的虽有属性。
3、props验证
a. type
类型:String、Number、Boolean、Array、Object、Data、Function、Symbol(用来表示独一无二的值),构造函数
prop验证:
html:

<child :mes="123"></child> //表示传递的参数是number 类型

script:

props:{
mes:String
},
//表示子组件希望接收的mes type 为String 类型,但是在上一段代码中,传递的却是number类型,结果报错

image.png

完整代码截图:

image.png

如果子组件希望父组件传递的值是多元的,比如既可以是Number也可以是String,那么

props:[ String, Number ]

如果希望父组件必要或者非必要传入某个值,那么 required:ture/false即可
b. required:

props:{
mes{
type:String
required:ture
}
}

image.png

如果父组件没有传mes 给子组件,而子组件通过 required:true 要求mes 为必传,就会报错。


image.png

c. defualt:
如果父组件不向子组件传递mes,而且子组件要求 required:false,defualt 的值就会显示在页面中


image.png

d. validator:
如果子组件希望规定父组件传递的值长度,用自定义校验器validator


image.png

长度如不符合要求即控制台报错

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • [TOC] Vue 学习笔记 Vue 源码解析 - 主线流程 Vue 源码解析 - 模板编译 Vue 源码解析 -...
    Whyn阅读 636评论 0 1
  • 作为一个合格的开发者,不要只满足于编写了可以运行的代码。而要了解代码背后的工作原理;不要只满足于自己的程序...
    六个周阅读 8,526评论 1 33
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 2,245评论 0 6
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,860评论 2 9
  • 我不知道自己拥有什么能力,以至于到今天,20岁的“成年人”没有什么值得炫耀。
    黎泽LC阅读 185评论 0 1