组件传值

67 阅读1分钟

单向数据流

//父
1.import引入
2.注册
3.使用
<ComponentChild :msg="msg" :handler="myclick"  v-bind="obj"  a="1" b="2" c="3" />
 //子
 <script>
     export default {
       //1.props:[],
       //2.props: {msg: String,obj: String}
       //3.
       props: {
           msg{
              type: String,
              // required 需要  必填
              required: true,
           }
       }
       //4. 自定义验证
       mobile: {
            type: String,
            // validator 验证  自定义验证
            validator(v) {  // v  传递过来的值
                if (!/^1[3-9]\d{9}$/.test(v)) {
                    // 验证失败
                throw new Error('你的手机号格式错误,请重新传递');
                }
                // 验证成功
                return true;
            }
        }
     }
 </script>
created() {
        // 父组件传递过来的自定义属性,获取没有接收的属性
        console.log(this.$attrs);

子传父

 //子级
 <button @click="handler">去调用的传递过来的自定义属性</button>
 handle(v){
  this.$emit('myevent',v)
 } 
 //para1 父级自定义事件名

  //父级
  <Component @myevent=handle  />
  handle(v){
     console.log(v)
     //v就是从子级传输过来的数据
  }