vue组件封装及父子组件传值,事件处理

发布时间:2019-05-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了vue组件封装及父子组件传值,事件处理脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

vue开发中,把有统一功能的部分提取出来,作为一个独立的组件,在需要使用的时候引入,可以有效减少代码冗余.
难点在于如果封装,使用,如何传参,派发事件等,我会采取倒叙的方式进行说明.
(本文总结于Vue2实战解密一书)
代码如下:
封装组件BookList.vue

<template>
    <div class="book-list">
        <div class="header">
            <div class="heading">{{heading}}</div>
            <div class="more">更多...</div>
        </div>
        <div class="book-items">
            <div class="book" v-for="book in books">
                <div class="cover">
                    <img :src="book.imgUrl" />
                </div>
                <div>{{book.title}}</div>
                <div>{{book.authors | join}}</div>
            </div>
        </div>
    </div>
</template>
<script>
    export default{
         props:['heading','books'],
         filters:{
             join(args){
                 return args.join(',');
             }
         }   
    }
</script>
要向组件输入数据就不能用data来作为数据容器了,因为data是一个内部对象,此时要换成props
我们可以这样理解:
    data的作用域是仅仅适用于内部,而对于外部是不可见的,props是内部外部都可见,是一个公共的组件成员变量.

Home.vue 组件代码如下:

<template>
    <div class="section">
        <book-list :books="books1" heading="书列表1"></book-list>
    </div>
    <div class="section">
        <book-list :books="books2" heading="书列表2"></book-list>
    </div>
</template>
<script>
    import BookList from './components/BookList.vue'
    export default{
         data(){
             return{
                 books1:[],
                 books2:[],
             }
        },
        components:{        //注册自定义组件
            BookList
        }
</script>

脚本宝典总结

以上是脚本宝典为你收集整理的vue组件封装及父子组件传值,事件处理全部内容,希望文章能够帮你解决vue组件封装及父子组件传值,事件处理所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:Vue