前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >cssjshtml vue.js 子向父属性绑定

cssjshtml vue.js 子向父属性绑定

作者头像
葫芦
发布2019-04-17 16:29:16
1.3K0
发布2019-04-17 16:29:16
举报
文章被收录于专栏:葫芦葫芦葫芦

实现目标:

子vue属性发生变更,父vue关联的属性同时变更。

1.子vue:

注册click事件,通过$emit发送事件,参数第一位为父vue的监听事件名,第二位为所传属性isCollapse。

this.$emit('changeMargin', this.isCollapse)

<template>
  <div>
        <i v-if="!isCollapse" class="el-icon-d-arrow-left" @click="asidechange()"></i>
        <i v-if="isCollapse" class="el-icon-d-arrow-right" @click="asidechange()"></i>
  </div>
</template>
  export default {

    data() {
      return {
        isCollapse: false
      }
    },
    methods: {
      asidechange() {
        this.isCollapse = !this.isCollapse
        this.$emit('changeMargin', this.isCollapse)
      }
    }
  }

2.父vue:

父vue通过@changeMargin接收子vue所传事件,通过changeMargin($event)方法 更新自己的isMargin属性。

  changeMargin(isCollapse) {         this.isMargin = isCollapse         console.log(isCollapse)       }

<template>
  <el-container>
    <el-header>
      <Header></Header>
    </el-header>
    <el-container>
      <el-aside width="180px">
        <Aside @changeMargin="changeMargin($event)"></Aside>
      </el-aside>

      <el-main :class="{ margin: isMargin }">
        <router-view></router-view>

      </el-main>
    </el-container>
  </el-container>

</template>

<script>
  import Header from '@/views/home/Header.vue'
  import Aside from '@/views/home/Aside.vue'

  export default {
    name: "Index",
    data() {
      return {
        isMargin: false
      }
    },
    components: {
      Header,
      Aside
    },
    methods: {
      changeMargin(isCollapse) {
        this.isMargin = isCollapse
        console.log(isCollapse)
      }
    }
  }
</script>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019/03/12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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