Vue组件通讯——父子传值

1.父传子利用props

父组件代码

<template>

    <header-box :title-txt="showTitleTxt"></header-box>

</template>

<script>

    import Header from './header'

    export default {

        name: 'index',

        components: {

            'header-box': Header

        },

        data () {

            return {

                showTitleTxt: '首页'

            }

        }

    }

</script>

子组件代码

<template>

    <header>

        {{thisTitleTxt}}

    </header>

</template>

<script>

    export default {

        name: 'header-box',

        props: {

            titleTxt: String

        },

        data () {

            return {

                thisTitleTxt: this.titleTxt

            }

        }

    }

</script>


2.通过$on,$emit

  父组件代码

<template>

    <div id="counter-event-example">

      <p>{{ total }}</p>

      <button-counter v-on:increment="incrementTotal"></button-counter>

</div>

</template>

<script>

    import ButtonCounter from './buttonCounter'

    export default {

        name: 'index',

        components: {

            'button-conuter': ButtonCounter

        },

        data () {

            return {

                total: 0

            }

        },

        methods: {

            incrementTotal () {

                this.total++

            }

        }

    }

</script>

子组件代码

<template>

    <button @click="incrementCounter">{{counter}}</button>

</template>

<script>

    export default {

        name: 'button-counter',

        data () {

            return {

                counter: 0

            }

        },

        metheds: {

            incrementCounter () {

                this.$emit('increment')

                this.counter++

            }

        }

    }

</script>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容