Advertisement

vue props的所有重点知识

阅读量:

props

一、props规定类型:

1.不规定类型。默认情况,props是可以接收数组的,如下:

复制代码
    props: ['title', 'likes', 'isPublished', 'commentIds', 'author']
    

不验证数值的任何类型,通常情况最好不这样写。

2.只做类型效验时,props传入对象,每一个键对应着一个类型的值。如下:

复制代码
 //常用类型

    
 props: {
    
   title: String,
    
   likes: Number,
    
   isPublished: Boolean,
    
   commentIds: Array,
    
   author: Object,
    
   callback: Function,
    
   contactsPromise: Promise // 或任何其他构造函数
    
 }
    
  
    
    
    
    

二、传递参数。(静态【常量】或动态【变量】)

1.传递常量值:

复制代码
    <blog-post title="My journey with Vue"></blog-post>
    

注意 :如果除字符串的其他值,比如boolean值,必须写成:title="false",否则就会当成一个字符串false来处理,其他类型的值也是。2.传递变量值:

复制代码
 <!-- 动态赋予一个变量的值 -->

    
 <blog-post :title="post.title"></blog-post>
    
  
    
 <!-- 动态赋予一个复杂表达式的值 -->
    
 <blog-post :title="post.title + ' by ' + post.author.name"></blog-post>
    
    
    
    

说明:动态赋值的时候,一般是指定一个data中的变量,不过也可以是一个表达式,如::title="title+'名字'";也可以是计算属性computed,或者过滤器。

三、Prop 验证。

复制代码
 props: {

    
     // 基础的类型检查 (`null` 和 `undefined` 会通过任何类型验证)
    
     propA: Number,
    
     // 多个可能的类型
    
     propB: [String, Number],
    
     // 必填的字符串
    
     propC: {
    
       type: String,
    
       required: true
    
     },
    
     // 带有默认值的数字
    
     propD: {
    
       type: Number,
    
       default: 100
    
     },
    
     // 带有默认值的对象
    
     propE: {
    
       type: Object,
    
       // 对象或数组默认值必须从一个工厂函数获取
    
       default() {
    
         return { message: 'hello' }
    
       }
    
     },
    
     // 自定义验证函数
    
     propF: {
    
       validator(value) {
    
         // 这个值必须匹配下列字符串中的一个
    
         return ['success', 'warning', 'danger'].includes(value)
    
       }
    
     },
    
     // 具有默认值的函数
    
     propG: {
    
       type: Function,
    
       // 与对象或数组默认值不同,这不是一个工厂函数 —— 这是一个用作默认值的函数
    
       default() {
    
         return 'Default function'
    
       }
    
     }
    
   }
    
    
    
    

全部评论 (0)

还没有任何评论哟~