Vue把常用 【组件提取】 出来后使用【插槽把父元素】传入【组件中】

导读:本篇文章讲解 Vue把常用 【组件提取】 出来后使用【插槽把父元素】传入【组件中】,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

简介:

通常我们会把比较重复的标签提取到组件中使用,这样的好处是我们不需要编写重复代码,只需要引入对应组件即可,还有就是如果对通用的组件进行添加新元素,引用的组件也会有相同效果,如果是每个页面都写了重复的代码,哪天产品提新需求添加效果时,那你只能一个一个页面进行更改

该界面需要提取组件如图:

在这里插入图片描述

如图所示:
下拉刷新这个功能应该是非常常见的吧,如果我单独在获取用户地址这里加下拉刷新,那我下一个开发的界面是购物车界面是不是也需要下拉刷下页面发送请求获取最新数据呢?索性我们直接吧下拉刷新提取成一个组件使用,以后有需要我们就引入公共的下拉组件

使用的是Vant 一个轻量、可靠的移动端组件库里面的下拉刷新组件
在这里插入图片描述
下拉调用该方法
在这里插入图片描述

首先明确需要准备那些:

  1. 需要把下拉刷新的组件提取成单独的页面
  2. 使用插槽slot标签表示父组件的元素
  3. 使用props中定义父页面传递的刷新方法

按照步骤走:

1.组件提取成单独页面(提取组件)

在组件目录下创建,一般组件目录叫components
在这里插入图片描述

模板代码:

<template>
  <van-pull-refresh
      v-model="isLoading"
      success-text="刷新成功"
      @refresh="onRefresh"
      style="overflow:visible"
  >
    <!-- 使用插槽slot 这个代表组件内父元素会表示在slot标签中  -->
    <slot></slot>
  </van-pull-refresh>
</template>

js代码:

<script>
import { PullRefresh } from 'vant';
export default {
  props:{
    // 接口请求列表的方法
    refresh: {
      //定义成函数,用于传递父类的方法
      type: Function,
      required: true,
    },
  },
  components: {
    PullRefresh
  },
  data() {
    return {
      //加载状态
      isLoading:false
    };
  },
  computed:{
  },
  methods: {
    onRefresh() {
      //调用组件方法内的父类方法,用于刷新数据
      this.refresh();
      //刷新完成后关闭刷新界面
      this.isLoading=false;
      console.log("父方法调用完成后改变状态",this.isLoading)
    },
  },
};
</script>

2.父页面引用组件

script标签中添加,导入组件的位置

import PullRefresh from '@/views/components/PullRefresh/index';

在这里插入图片描述

模板代码中添加组件

    <PullRefresh
        :refresh="onRefresh"
    >
      <!--下面的内容会在组件的插槽中展示      -->
      <AddressList v-if="list.length" :list="list"/>
      <van-empty v-else class="empty" :description="listEmptyText"></van-empty>
      <!--可以是任何元素...-->

    </PullRefresh>

上面的解析:

:refresh会绑定下拉刷新组件中的propsrefresh对象并且他的类型是需要接收父组件传递的方法
在这里插入图片描述

在这里插入图片描述
父页面传递到下拉刷新组件中的onRefresh方法
在这里插入图片描述

3.查看效果

下拉刷新完成后,也获取到后端数据了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/83822.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!