【VUE】- 前端封装之父子组件传值

【VUE】- 前端封装之父子组件传值前端代码进行抽象与封装离不开父子组件传值问题,做的过程中总有梳理不清楚的时候,在此总结一波,一方面是自己梳理梳理思路,另外一方面有需要的伙伴们也可以瞅一瞅,本文是从开始到最后实现数据的一个操作过程;父组件向子组件传值1、可抽离的静态页面首先是看一下自己的静态页面有哪些相似之处可以被抽象出来,如下面这个页面,看似不一样,实则都是一样的,只是图标和文字内容不一致,OK了解后我们可以开始设计静态页…

大家好,又见面了,我是你们的朋友全栈君。

前端代码进行抽象与封装离不开父子组件传值问题,做的过程中总有梳理不清楚的时候,在此总结一波,一方面是自己梳理梳理思路,另外一方面有需要的伙伴们也可以瞅一瞅,本文是从开始到最后实现数据的一个操作过程;

父组件向子组件传值

1、可抽离的静态页面

首先是看一下自己的静态页面有哪些相似之处可以被抽象出来,如下面这个页面,看似不一样,实则都是一样的,只是图标和文字内容不一致,OK了解后我们可以开始设计静态页面啦;
在这里插入图片描述

<div class="settingListSwitch">
    <img class="settingLogoSwitch" src="../../public/settings/显示.png"/>
    <span class="words">显示单词</span>
    <van-switch size="24px" class="switchSwitch" />
</div>

2、父组件操作

//引入子组件
import momoTemplate from "../../components/momoTemplate.vue";

//注册子组件
export default{
	components:{ momoTemplate }
}

//引入常量js-传入数据
import { settingData, settingSwitchData } from "../../Entity/settingDataEntity";

所引入JS:import { settingData, settingSwitchData } from “…/…/Entity/settingDataEntity”;其中的“settingData”“settingSwitchData”,是我们Js中传出来的变量
在这里插入图片描述
3、显示数据

  1. 在props中写子组件需要的属性
export default {
  props:{
    // 显示文本
    allColumnsTitle:{default: "延迟跳转"},
    //显示开关
    allColumnsSwitch:{default:"0"},
    //开关状态
    isTrue:{default:"false"},
    //显示图标
    arrowIcon: { default: require("../../public/settings/右.png") }, 
  },

与js数据中的值相对应
在这里插入图片描述
2. 父组件-动态绑定数据(子组件需要的数据)

<template>
   <momoTemplate 
      v-for="(item,index) of settingSwitchData"
      :key="index"
      :settingLogoSwitch="settingSwitchData[0].arrowIcon"
      :allColumnsTitle="settingSwitchData[0].allColumnsTitle"
      :isTrue="settingSwitchData[0].isTrue"
      >
  </momoTemplate>
</template>
  1. 子组件-显示父组件传过来的数据
<div class="settingListSwitch">
    <img class="settingLogoSwitch" :src="settingLogoSwitch"/>
    <span class="words">{
  
  {allColumnsTitle}}</span>
    <van-switch v-model="isTrue" size="24px" class="switchSwitch" />
</div>

到此父组件向子组件传值的过程已经完成,接下来是子组件向父组件传值;

子组件向父组件传值

1、子组件:

<di>  
    <van-switch
      v-model="isTrue"
      @change="selectSwitch"
    />
</div>

在这里插入图片描述

// 子组件向父组件传值
    selectSwitch(){ 
   
      this.childIsTrue=this.isTrue;
      this.$emit("listenToChild",this.childIsTrue);
    }

2、父组件:

在这里插入图片描述

// 接收子组件传值,绑定
@listenToChild="changeValue"
changeValue(){ 
   
},

注意:changeValue()默认参数为子组件传递过来的参数,当我们再传递参数时就会覆盖子组件传递过来的参数

父子组件传值的梳理到此告一段落,个人学习及使用的总结,哪里理解偏差的,一起交流学习;

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/145738.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 在线更换背景网站(白色背景换为蓝色背景证件照)[通俗易懂]

    在线更换背景网站(白色背景换为蓝色背景证件照)

  • vue-router beforeEach钩子

    vue-router beforeEach钩子在使用vue-routerbeforeEach钩子时,你也许会遇到如下问题:源码:router.beforeEach((to,from,next)=&gt;{//判断登录状态简单实例varuserInfo=window.localStorage.getItem(‘token’);if(userInfo){next();…

  • 集锦——浏览器每次访问自动更新网页,不用手工设置,附Google/firefox/Ie

    在做开发web开发的时候,经常要使用到浏览器来着进行调试,那么有时候自己修改了内容,可是在浏览器上还是没有显示出来,费了好久才发现是浏览器缓存的问题。还要强制刷新缓存 就是 Ctrl + F5。所以在开发时候,最好将自己的调试浏览器设置为访问自动刷新网页,不要使用页面的缓存。下面就是常用开发浏览器的设置:1. Chrome 浏览器打开到开发者模式:将Disable cache

  • 成员变量,类变量,局部变量的区别是什么_内部变量和局部变量

    成员变量,类变量,局部变量的区别是什么_内部变量和局部变量面向对象编程1.封装性面向对象编程核心思想之一就是将数据和对数据的操作封装在一起,通过抽象即从具体的实例中抽取共同的性质形成一般的概念。2.继承子类可以继承父类的属性和功能,即子类继承了父类所有的数据和数据上的操作,同时又可以添加子类独有的数据和数据上的操作。3.多态有两种意义的多态    1)操作名称的多态  2)和继承有关的多态类:

    2022年10月25日
  • G1收集器详解「建议收藏」

    G1收集器详解「建议收藏」CMS垃圾收集器的弊端:会产生内存碎片&&需要预留空间。这两个问题在处理时,很有可能会导致停顿时间过长,即CMS的停顿时间不可预知。所以G1又可以理解为在CMS垃圾收集器上进行了”升级”。G1垃圾收集器可以给你设定一个你希望Stoptheworld停顿时间,G1会根据这个时间尽量满足你。在JVM堆中,堆的内存分布是以物理空间进行隔离——但是在G1垃圾收集器中,堆的划分不再是物理形式,而是以逻辑的形式进行划分。但是,分代的概念在G1中依旧奏效,比如,新对象一般会被分配.

  • 猪脸识别!人工智能还能这么玩?

    猪脸识别!人工智能还能这么玩?黑马程序员视频库播妞微信号:heiniu526传智播客旗下互联网资讯、学习资源免费分享平台说到AI人工智能,很多人都会想到人脸识别,毕竟这是现实生活中接触最多的人工智能产品。只要轻轻一扫…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号