vue组件的封装

封装组件的步骤

  1.  建立组件的模板,先把架子搭起来,写写样式,考虑好组件的基本逻辑。   

  2.  准备好组件的数据输入。即分析好逻辑,定好 props 里面的数据、类型。

  3.  准备好组件的数据输出。即根据组件逻辑,做好要暴露出来的方法。

  4.  封装完毕了,直接调用即可。

 

 

 

代码详解

  1. 先说一下 props

    我们在父组件中需要将子组件需要的数据导入,用法如下:

<search @selectFunc="selectFunc" :searchList="searchList" :selectValue="selectValue"></search>

    :searchList="searchList"  就是我们的数据,这个可以写多个。这里我传输了2个参数过去,主要是做数据修改的说明。大家可以先忽略。

 

    在子组件中,我们的接收和使用方法如下:

复制代码
复制代码
props: {
      searchList: Array,
      selectValue: Object
    },
mounted() {
      this.data = this.searchList
    },
复制代码
复制代码

    我们在 props 中接收数据,注意props对象里面 键值 是对改数据的 数据类型 的规定。做了规范,使用者就只能传输指定类型的数据,否则报警告

    而props对象中的数据,我们可以直接在当前组件中使用  this.searchList,可以直接使用。这里要强调一下,props传过来的数据只做展示,不得修改,想修改,再新写一个data中的变量承接做数据的再处理。至于原因,同上,可以看一下js的原型。至于原理嘛,不懂的可以取脑补一下 js的原型 。    

    以上就是props传递过来的数据的使用了。

方法

   正儿八经的通过 $emit 方法去掉父组件的方法,在父组件中修改data的数据。

复制代码
复制代码
// 子组件
this.$emit('selectFunc', value)
// 父组件
<search @selectFunc="selectFunc" :searchList="searchList" :selectValue="selectValue"></search>

selectFunc(value) {
        this.selectValue2 = value
        console.log(this.selectValue)
        console.log(this.selectValue2)
      }
复制代码
复制代码

    将父组件的方法注入子组件  @selectFunc="selectFunc" ,然后在子组件中通过 $emit 调用他,并传递参数。达到修改的目的。

 

posted @   华北李清照  阅读(4549)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示