首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue中父子组件传递信息实现

vue中父子组件传递信息实现

作者头像
wfaceboss
发布2019-04-08 10:47:51
5680
发布2019-04-08 10:47:51
举报
文章被收录于专栏:wfacebosswfacebosswfaceboss

为了能够在父子组件中实现双向控制,需要以下的步骤:

第一步:子组件中挖坑

(1)在需要父组件填充具体内容的地方挖坑,方式为

  <slot name="message"></slot>

通过slot和name指定坑

第二步:父组件中填坑(具体内容)

(1)引入子组件作为其中一个模块

在父组件的script中通过import引入,然后通过components进行挂载,最后以标签的形式使用

(2)在子组件模块区域内,使用slot="name的值"指定需要填的坑

<p slot="message">//填坑的内容
              
  <span>加入购物车成功</span>

 </p>

上述两步只是实现了组件简单内容的填充,但涉及到值的传递,及控制时还需如下的操作

(1)父组件中的值传递到子组件中:

子组件使用props拿到传递过来的值(在子组件的export default中)

此时父组件与值组件的代码为:

父组件:

<Modal v-bind:mdShow="mdShow" >//Modal是子组件在父组件中
            <p slot="message">
                请先登录,否则无法加入购物车!
            </p>
   </Modal>

<script>
import Modal from  '@/components/Modal.vue'
 export default {
  data () {
   return {
       mdShow: false,
          }
        },
  components: {
            Modal
        },
}
</script>

子组件中代码为:

 <div  v-bind:class="{'md-show':mdShow}">
      
      <div class="confirm-tips">

          <slot name="message"></slot>

       </div>
                   
    </div>
<script>
    export default{
        props: ["mdShow"],//接受到来自父组件的值
        data(){
            return {
             
            }
        },
     }
    }
</script>

(2)子组件控制父组件中的值:实质上通过子组件的方法间接 通过$emit方法去调用父组件中的方法,

例如父组件有一个方法为close

<p  v-on:close="closeModal">
<Modal v-bind:mdShow="mdShow" >//Modal是子组件在父组件中
            <p slot="message">
                请先登录,否则无法加入购物车!
            </p>
   </Modal>
</p>
<script>
import Modal from  '@/components/Modal.vue'
 export default {
  data () {
   return {
       mdShow: false,
          }
        },
  components: {
            Modal
        },
methods:{
  closeModel(){
  this.mdShow = true;
}
}
</script>

(2)子组件中需要触发父中绑定的close方法

 
<div  v-bind:class="{'md-show':mdShow}">
      
<div @clicki="closeModal">Close<div>
      <div class="confirm-tips">

          <slot name="message"></slot>

       </div>
                   
    </div>

<script>
    export default{
        props: ["mdShow"],
        data(){
            return {
             
            }
        },
        methods: {
            closeModal(){
                this.$emit("close");//触发父组件中定义的方法
            }
        }
    }
</script>

初学阶段简单总结一下:子组件中挖坑,父组件填坑。

前面两步骤只是简单实现组件的加载,对于有值传递和控制,需要通过该后面两步的props接受来自父组件的值 和$emit触发父组件的方法实现。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-11-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档