写点什么

记录第三天 -Vue 组件

作者:默默的成长
  • 2022-10-12
    山东
  • 本文字数:1299 字

    阅读完需:约 4 分钟

前言

今天继续整理 VUE 组件知识点,冲冲冲!!!

一.父子组件传值

父子组件传值大体流程

1.通过 prop 往子组件通信

  • 父>子

  • 1.先给父组件中绑定自定义的属性

  • 2.在子组件中使用 props 接受父组件传递的数据

  • 3.可以在子组件中任意使用


  Vue.component('Chlid',{         template:`         <div>           <p>我是一个子组件{{chlidDate}}</p>         <input type="text" v-model='chlidDate'/>         </div>         `,        props:['chlidDate']       });       Vue.component('Parent',{        data(){          return{            msg:"我是父组件的数据"          }        },        template:`        <div>          <p>我是一个父组件</p>         <Chlid :chlidDate ='msg' />        </div>        `      });
复制代码


- 子→ 父
复制代码


  • 1.在父组件绑定 自定义的事件

  • 2.在子组件中触发原生的事件 在函数中使用 $emit 触发自定义的 chlidHandler



// 1. parent 2.Child Vue.component('Chind',{ template:` <div> <p>我是子组件</p> <input style='text' v-model='chlidData' @input='changeValue(chlidData)'/> </div> ` , props:['chlidData'], methods:{ changeValue(val){ //$emit(自定义的事件名,消息) this.$emit('childHandler',val) } } }) Vue.component('Parent',{ data(){ return{ msg:'我是父组件的数据' } }, template:` <div> <p>我是父组件</p> <Chind :chlidData = 'msg' @childHandler ='childHandler'/> </div> `, methods:{ childHandler(val){ console.log(val); } } });
复制代码

二.具名插槽

  • 插槽 内置组件 slot 做为承载分发内容的出口

  • 进行封装组件



<div id="app"></div> <script type="text/javascript"> Vue.component('myLi',{ template:` <li> 预留的第一个坑 <slot name='two'></slot> 预留的第二个坑 <slot name='three'></slot> </li> ` }); var App={ template:` <div> <ul> <myLi> <h2 slot='two'>我是第一个坑</h2> <h3 slot='three'>我是第二个坑</h3> </myLi> </ul> </div> ` }; new Vue({ el:'#app', components:{ App, }, template:`<App/>` })
复制代码

结尾

在这里整理了 关于组件 父子之间互相传值的方法以及传值过程的流程。能够清楚父子之间的传值,主要运用到 props 传值方面,在组件之间互相传值的方法还有很多种,在以后我会逐步整理出来,一起学习喜喜。在这里还有提到具名插槽,运用可以减少代码臃肿的问题,可以让代码简洁一些。

用户头像

还未添加个人签名 2022-10-11 加入

还未添加个人简介

评论

发布
暂无评论
记录第三天-Vue组件_Vue_默默的成长_InfoQ写作社区