Vue 如何简单快速组件化

news2025/1/16 18:37:53

文章目录

  • 前言
  • 相关文章
  • 组件化实战
    • 如何引入组件
    • 什么是父组件,什么是子组件
    • 如何实现给子组件赋值
      • 完整代码
    • 如何调用子组件方法
      • 完整代码
  • 总结

前言

为了简化拆分复杂的代码逻辑,和实现代码的组件化,封闭化。我们需要使用组件化的方法。我这里只讲解我感觉最优的组件化方法。

相关文章

vue组件化总结

vue 单文件组件

子组件修改Props报错

vue 父组件调用子组件方法ref

vue中组件的props属性(详)

组件化实战

使用Vue-cil搭建一个简单的Vue页面,如何搭建不展开

如何引入组件

在这里插入图片描述

Vue的路由管理不展开说明

子组件

<template>
    <div>
        <h1>我是子组件</h1>
    </div>
</template>

<script>
export default {
    data() {
        return {};
    },
    methods: {
    },
};
</script>

<style lang="scss"></style>


父组件代码

<template>
  <div>
    <h1>我是父组件</h1>
    <TestComponent />
  </div>
</template>

<script>
//引用子组件
import TestComponent from '@/components/TestComponent.vue';

export default {
  data() {
    return {
    };
  },
  components:{
    TestComponent
  },
  methods: {
  },
};
</script>

<style lang="scss"></style>


实现效果

在这里插入图片描述

什么是父组件,什么是子组件

父组件子组件
包含关系外层里层
调用关系使用被调用
传递关系父能传子,控制子组件子不能直接传父,单向流通

如何实现给子组件赋值

使用Props属性

子组件修改Props报错

vue中组件的props属性(详)

子组件添加

export default {
	//将属性暴露给父组件,这里暴露了name属性
    props:['name'],
    data() {
        return {}
    },
    methods: {
    },
};

父组件赋值

    <!-- 在标签中赋值 -->
    <TestComponent name="我设置子组件属性" />

效果
在这里插入图片描述

动态赋值可以使用v-bind方法

完整代码

TestComponent

<template>
    <div>
        <h1>我是子组件</h1>
        <h2>我是子组件name属性:{{ name }}</h2>
        
    </div>
</template>

<script>
export default {
    //将属性暴露给父组件,这里暴露了name属性
    props: ['name'],
    data() {
        return {}
    },
    methods: {
    },
};
</script>

<style lang="scss"></style>

Test

<template>
  <div>
    <h1>我是父组件</h1>
    <!-- 在标签中赋值,使用v-bind动态修改 -->
    <TestComponent :name="msg" />
    <button @click="TestBtn">我修改组件属性</button>
  </div>
</template>

<script>
//引用子组件
import TestComponent from '@/components/TestComponent.vue';

export default {
  data() {
    return {
      msg: '修改前'
    };
  },
  components: {
    TestComponent
  },
  methods: {
    //添加按钮事件动态修改
    TestBtn() {
      this.msg = '修改后'
    }
  },
};
</script>

<style lang="scss"></style>

在这里插入图片描述

如何调用子组件方法

vue 父组件调用子组件方法ref

子组件不能直接修改props属性,只能父组件修改

  • 给子组件标签添加ref=“name”,name可以自定义
  • 在代码中使用this.$ref.name.method(子组件对应方法名)

完整代码

TestComponent

<template>
    <div>
        <h1>我是子组件</h1>
        <h2>我是子组件name属性:{{ name }}</h2>
        
    </div>
</template>

<script>
export default {
    //将属性暴露给父组件,这里暴露了name属性
    props: ['name'],
    data() {
        return {}
    },
    methods: {
        ChildBtn(){
            console.log('我是子组件方法')
        }
    },
};
</script>

<style lang="scss"></style>

Test

<template>
  <div>
    <h1>我是父组件</h1>
    <!-- 在标签中赋值,使用v-bind动态修改 -->
    <!-- 通过设置ref来调用子组件的方法 -->
    <TestComponent :name="msg" ref="Test" />
    <button @click="TestBtn">我调用子组件方法</button>
  </div>
</template>

<script>
//引用子组件
import TestComponent from '@/components/TestComponent.vue';

export default {
  data() {
    return {
      msg: '修改前'
    };
  },
  components: {
    TestComponent
  },
  methods: {
    //添加按钮事件动态修改
    TestBtn() {
      console.log("开始调用子组件方法")
      this.$refs.Test.ChildBtn()
    }
  },
};
</script>

<style lang="scss"></style>

在这里插入图片描述

在这里插入图片描述

总结

这个是最简单快速的组件化方法,我们可以添加name属性,props也也可以设置默认和属性检测。大家可以网上自己搜索一下详细的属性设置。关键词:组件化,父组件子组件,ref,props

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/724149.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

划片机之半导体MiniLED/MicroLED封装技术及砂轮切割工艺

对于MiniLED和MicroLED的封装技术&#xff0c;除了之前提到的COB、coG、coF、IMD和MiP工艺&#xff0c;还有一些新的封装技术&#xff0c;例如&#xff1a; 0CRL&#xff08;Oxide-Buffered CuInGaZn/Quar&#xff09;工艺&#xff1a;这种工艺使用氧化物缓冲层来增强芯片和基板…

9.2.4 vim 的暂存盘、救援回复与打开时的警告讯息

当我们在使用 vim 编辑时&#xff0c; vim 会在与被编辑的文件的目录下&#xff0c;再创建一个名为.filename.swp 的文件。 比如说我们在上一个小节谈到的编辑 /tmp/vitest/man_db.conf 这个文件时&#xff0c; vim 会主动的创建 /tmp/vitest/.man_db.conf.swp 的暂存盘&#x…

网络运维工程师是干什么的:为网络世界保驾护航的技术守护者

网络运维工程师是现代企业中至关重要的职业之一。他们负责保证网络的正常运行&#xff0c;解决各种网络故障&#xff0c;并优化网络性能。本文将揭秘网络运维工程师的神秘面纱&#xff0c;带您了解他们的日常工作和职责。 1. 故障排除和维护&#xff1a; - 网络故障诊断&#x…

千亿儿童食品赛道,谁能成为行业“指明灯”?

文 | 螳螂观察 作者 | 易不二 近几年的热门赛道&#xff0c;风口此起彼伏&#xff0c;但儿童食品却是长风常吹。 《儿童零食市场调查白皮书》预测&#xff0c;2019—2023年间&#xff0c;儿童零食市场将以10%-15%的复合年增长率稳定增长&#xff0c;市场预期超6000亿元&…

【C++学习笔记】RAII思想——智能指针

智能指针 1 内存泄漏问题2 RAII&#xff08;Resource Acquisition Is Initialization&#xff09;2.1 使用RAII思想设计的SmartPtr类2.2 智能指针的原理2.3 小总结智能指针原理 3 智能指针的拷贝问题3.1 std::auto_ptr3.2 std::unique_ptr3.3 std::shared_ptr3.3.1 拷贝构造函数…

等保二级配置(四)口令复杂度策略和禁止root登录

口令复杂度策略 序号检查项名称检查指南符合性说明整改方法1口令复杂度策略1.确认账号现用密码&#xff1b; 2.查看配置文件/etc/pam.d/system-auth中相关参数。1.密码长度不小于8位&#xff0c;至少包括数字、大写字母、小写字母、特殊字符中的三种字符&#xff0c;非常见弱密…

23款奔驰GLS450时尚型更换原厂几何多光束大灯,让智能照亮您前行的路

奔驰几何多光束大灯核心特点就是通过内部的84颗可独立控制的LED光源&#xff0c;行车远光灯会甄别对向驶来的车辆或者行人&#xff0c;并且动态的跟随目标&#xff0c;之后阴影话该区域&#xff0c;避免晃到车辆和行人。

简单分享下小程序商城开发要多少钱

小程序商城的开发费用因多种因素而异&#xff0c;包括以下几点&#xff1a; 一、功能需求&#xff1a;商城的功能要求不同&#xff0c;开发所需的工作量也会有所不同。例如&#xff0c;基本的商品展示和购买功能相对较简单&#xff0c;而复杂的订单管理、支付、物流等功能可能需…

linux中安装Nginx的具体步骤

1.首先介绍一下Ngnix nginx是一款使用c语言编写的高性能的HTTP和反向代理服务器&#xff0c;特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上Nginx的并发能力确实在同类型的网页服务器中表现得最好&#xff0c;中国大陆使用Nginx网站用户有&#xff1a;百度、京东、…

【IMX6ULL - LOGO替换】linux内核启动打印logo替换详细教程

Starting kernel ...[ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 4.1.15 (root@ubuntu) (gcc version 5.3.0 (GCC) ) #1 SMP PREEMPT Thu Jul 6 16:06:11 CST 2023这里我们针对性的修改 “root@ubuntu”

java的集合框架ListSetMap

什么是集合&#xff1f; 存储多个对象的单一对象&#xff08;java容器&#xff09;。 为什么不用数组&#xff1f; 集合与数组都是对数据进行存储操作的结构&#xff0c;简称java容器。 此时的存储主要是内存方面的&#xff0c;不涉及到持久话存储(.txt&#xff0c;.jpg&#x…

XXX汽车SAP ERP系统预月结模式助力成本高效结算(投稿数字化月报二)

XXX汽车业务复杂&#xff0c;零部件数据繁多&#xff0c;SAP ERP系统实施时&#xff0c;引进了行业的领先模式&#xff0c;所以系统挑战相对大&#xff0c;尤其是在月底进行账务结算时&#xff0c;出现过结算异常的情况&#xff0c;而公司对月结有固定的完成时间&#xff0c;因…

Seafile搭建个人云盘 - 内网穿透实现在外随时随地访问

文章目录 1. 前言2. SeaFile云盘设置2.1 Owncould的安装环境设置2.2 SeaFile下载安装2.3 SeaFile的配置 3. cpolar内网穿透3.1 Cpolar下载安装3.2 Cpolar的注册3.3 Cpolar云端设置3.4 Cpolar本地设置 4. 公网访问测试5. 结语 转载自cpolar极点云文章&#xff1a;使用SeaFile搭建…

Java 设计模式——代理模式

目录 1.概述2.结构3.静态代理3.1.实现3.2.优缺点 4.动态代理4.1.JDK 动态代理4.1.1.实现4.1.2.思考4.1.2.1.ProxyFactory 是代理类吗&#xff1f;4.1.2.2.动态代理的执行流程是什么样&#xff1f;4.1.2.3.为什么 JDK 动态代理只能代理有接口的类&#xff1f; 4.2.CGLIB 动态代理…

初识mysql数据库之数据类型

目录 一、数据类型 1. 数据类型分类 2. 数值类型 2.1 整数类型 2.2 位字段类型 2.3 小数类型 3. 字符串类型 3.1 char 3.2 varchar 4. 日期和时间类型 5. enum和set 5.1 enum介绍 5.2 set介绍 5.3 enum测试 5.4 set测试 5.5 enum的查找 5.6 set的查找 一、数据…

DAY40:贪心算法(九)单调递增的数字(贪心的思路)

文章目录 738.单调递增的数字&#xff08;暴力解也需要看一下&#xff09;暴力解写法注意&#xff1a;必须引入isIncreasing变量的原因 贪心思路遍历顺序 最开始的写法debug测试&#xff1a;逻辑错误 修改版debug测试int转化为字符串的原因to_string和stoi的用法 总结 738.单调…

CPCI-QU-216A正交解码计数器卡

CPCI-QU-216A是用于高速正交解码计数器CPCI板卡&#xff0c;包括6个立计数器&#xff0c;支持索引锁存&#xff0c;支持步长比较输出&#xff0c; 6个高速隔离输入&#xff0c;6个高速隔离输出。 l 32位 cPCI接口 l 6通道隔离输入 l 6通道隔离输出&#xff08;默认用于比较值输…

0125 计算机系统概述

目录 1.计算机系统概述 1.1计算机发展历程 1.2计算机系统层次结构 计算机硬件 计算机软件 计算机系统层次结构 计算机系统工作原理 指令执行过程 1.2部分习题 1.3计算机性能指标 计算机主要性能指标 几个专业术语 1.3部分习题 1.计算机系统概述 1.1计算机发展历程…

三星面板产能紧缺?超半数三星电视机采用其他厂商的面板

今年有超过50%的三星电视未使用自家屏幕&#xff0c;而是采用了来自中国厂商的大部分零件。 据韩国媒体《The Elec》报道&#xff0c;超过一半的三星电视机使用了其他厂商的面板。根据三星电子面板库存明细&#xff0c;大部分的面板来自中国的华星光电、惠科、京东方和咸阳彩虹…

小红书数据分析!Citywalk声量大涨,年轻人为何迷恋它?

近来&#xff0c;一种新型旅游形式——citywalk火了。惬意的城市漫游&#xff0c;成为时下年轻人最潮的逛GAI方式。小红书上更是掀起了citywalk游记潮流&#xff0c;人们纷纷在平台分享记录自己的出游感受。citywalk具体怎么玩&#xff1f;哪些人爱玩&#xff1f;通过分析小红书…