Vue组件间传值及传值校验

1.组件间传值

  Vue的组件间传值使用html属性的方式 

app.component('test',{
  
 // 利用props属性接收传过来的属性值
  props:['content'],    
  template: '<div>{{content}}</div>'

})

//根组件
const app = Vue.createApp({
  
    data:{

           num: 123
   },
    template: 
    `


            <test v-bind:content="num"/>
    `
   
 
})


const vm = app.mount('root');

 2.组件传值校验

  将props属性变为一个对象用以校验。 


const app = Vue.createApp({

         data(){

                num: 123
         },
    template: `<test v-bind:content="num"/>`

 })
app.component('test',{
   
    // 传过来的content必须是Number类型
    // 在冒号后面指定类型

     props:{
            content:Number
     },
    template:'<div>{{content}}</div>'
})

 3.更高级的校验与默认值

  通过将传过来的属性名也变成一个对象来进行更高级的校验 

const app = Vue.createApp({


          data(){

               num:123
          },
        template:'<test v-bind:content="num"/>'
 })


app.component('test',{

       props:{
        content:{    
                  //传过来的类型必须是数字
                   type: Number,
                   //验证器 可以写更复杂的验证条件
                   validator:funtion(val){
                            return val<1000
                    },
                    // 必须要传
                    required:true,
                   //默认值 如果没有传这个变量就默认为这个值
                    default:funtion(){
                    return 1234;    
               }
                // 也可以是default:1234
    }
   }
})

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值