【VUE】day04-组件的生命周期、组件之间的数据共享、ref引用、购物车案例

【VUE】day04-组件的生命周期、组件之间的数据共享、ref引用、购物车案例

  • 1. 组件之间的关系
  • 2. 使用组件的三个步骤
  • 3. vue.components全局注册组件
  • 4. 自动生成右边标签插件
  • 5. 组件的props
  • 6. 结合v-bind使用自定义属性
  • 7. props的默认default值
  • 8. type值类型
  • 9. 组件之间的样式冲突问题
  • 10. 组件的生命周期
    • 10.1 了解beforeCreate和created生命周期函数的特点

1. 组件之间的关系

在这里插入图片描述

2. 使用组件的三个步骤

步骤一:使用import语法导入需要的组件
import Left from '@/components/Left.vue'

步骤二:使用component节点注册组件

<script>
// 1. 导入需要使用的 .vue 组件
import Left from '@/components/Left.vue'
import Right from '@/components/Right.vue'
import Test from '@/components/Test.vue'export default {data() {return {flag: true}},// 2. 注册组件components: {Left,Right,Test}
}
</script>

步骤三: 以标签的形式使用刚才注册的组件

<template><div class="app-container"><h1>App 根组件</h1><button @click="flag = !flag">Toggle Flag</button><Test info="你好" v-if="flag"></Test><hr /><div class="box"><!-- 渲染 Left 组件和 Right 组件 --><!-- 3. 以标签形式,使用注册好的组件 --><Left></Left><Right></Right></div></div>
</template>

@路径提示的插件
在这里插入图片描述

3. vue.components全局注册组件


通过components注册的是私有子组件
例如:
在组件A的components节点下,注册了组件F。
则组件F只能用在组件A中,不能用在组件C中。


注册全局组件
在vue项目的main.js入口文件中,通过vue.component()方法,可以注册全局组件。示例代码如下
在这里插入图片描述

4. 自动生成右边标签插件

在这里插入图片描述

5. 组件的props

props是组件的自定义属性,在封装通用组件的时候,合理地使用props可以极大的提高组件的复用性!
在这里插入图片描述

在这里插入图片描述

6. 结合v-bind使用自定义属性

请添加图片描述

props的值赋值给cout
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. props的默认default值

在生命自定义属性时,可以通过default来定义属性的默认值,示例代码如下:
在这里插入图片描述

8. type值类型

在声明自定义属性时,可以通过type来定义属性值的值类型。代码如下:
在这里插入图片描述

<template><div><h5>Count 组件</h5><p>count 的值是:{{ count }}</p><button @click="count += 1">+1</button><button @click="show">打印 this</button></div>
</template><script>
export default {// props 是"自定义属性",允许使用者通过自定义属性,为当前组件指定初始值// 自定义属性的名字,是封装者自定义的(只要名称合法即可)// props 中的数据,可以直接在模板结构中被使用// 注意:props 是只读的,不要直接修改 props 的值,否则终端会报错!// props: ['init'],props: {// 自定义属性A : { /* 配置选项 */ },// 自定义属性B : { /* 配置选项 */ },// 自定义属性C : { /* 配置选项 */ },init: {// 如果外界使用 Count 组件的时候,没有传递 init 属性,则默认值生效default: 0,// init 的值类型必须是 Number 数字type: Number,// 必填项校验required: true}},data() {return {// 把 props 中的 init 值,转存到 count 上count: this.init}},methods: {show() {console.log(this)}}
}
</script><style lang="less"></style>

9. 组件之间的样式冲突问题

默认情况下,写在.vue组件中的样式会全局生效,因此很容易造成多个组件之间的样式冲突问题。

导致组件之间样式冲突的根本原因是:
① 单页面应用程序中,所有组件的DOM结构,都是基于唯一的index.html页面呈现的。
② 每个组件中的样式,都会影响整个index.html页面中的DOM元素。

解决办法:

方法1:
在这里插入图片描述
方法二:加上scoped
在这里插入图片描述

方法三:deep

<template><div class="left-container"><h3>Left 组件</h3><hr /><MyCount :init="9"></MyCount></div>
</template><script>
export default {}
</script><style lang="less" scoped>
.left-container {padding: 0 20px 20px;background-color: orange;min-height: 250px;flex: 1;
}h3 {color: red;
}// h5[data-v-3c83f0b7]
// [data-v-3c83f0b7] h5// 当使用第三方组件库的时候,如果有修改第三方组件默认样式的需求,需要用到 /deep/
/deep/ h5 {color: pink;
}
</style>

在这里插入图片描述

10. 组件的生命周期

生命周期(Life Cycle)是指一个组件从创建->运行->销毁的整个阶段,强调的是一个时间段。

在这里插入图片描述

10.1 了解beforeCreate和created生命周期函数的特点

文档地址: https://v2.cn.vuejs.org/v2/guide/instance.html#生命周期图示

下图展示了实例的生命周期。你不需要立马弄明白所有的东西,不过随着你的不断学习和使用,它的参考价值会越来越高。

请添加图片描述

P18 TODO

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

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

相关文章

Redis分布式锁深度剖析:从原理到Redisson实战,破解脑裂与高并发锁难题

一、&#x1f4cc; 分布式锁的核心应用场景 场景类型典型案例风险说明&#x1f680; 高并发场景电商秒杀、票务抢购库存超卖风险⏰ 定时任务场景集群日志清理、数据统计任务重复执行&#x1f504; 幂等场景支付接口重试、订单创建资金重复扣款 二、&#x1f527; Redis分布式锁…

量化交易学习笔记02:双均线策略

双均线策略示例 个股&#xff1a;中国平安 回测日期&#xff1a;2022-5-1至2023-5-1 短均线&#xff1a;5天 长无线&#xff1a;10天 代码&#xff1a; def initialize(context):# 初始化此策略# 设置我们要操作的股票池, 这里我们只操作一支股票# """标的&qu…

交换机控制软件的实现步骤猜测

一、主要目的 提出对交换机软件控制逻辑的猜测。 二、交换机控制软件的组成 (一)背景 1、交换机有很多的RJ45水晶头端口。 2、每个端口支持同时发送和接收字节数据。 3、每个端口接收的数据需要查表后才能转发给目标端口。 (二)端口状态扫描线程 负责扫描每个端口的状态&#x…

Part1:基于国内源完成Kubernetes集群部署

集群规划 操作系统&#xff1a;CentOS7 内核版本&#xff1a;5.4&#xff08;需升级&#xff09; 组件版本说明操作系统内核5.4RPM方式升级docker26.1.4yum安装cri-docker0.3.16二进制安装kubeadm1.30.11yum安装kubealet1.30.11yum安装kubectl1.30.11yum安装kubectl1.30.11yu…

中考英语之10难点单词

A abandon ~动词&#xff0c;意为 “抛弃&#xff1b;放弃”。 ~例如 He abandoned his old bike by the roadside.&#xff08;他把他的旧自行车扔在路边。&#xff09; absolute ~形容词&#xff0c;“绝对的&#xff1b;完全的”。 ~例如 We have absolute trust in him…

【GPT入门】第24课 langfuse介绍

【GPT入门】第24课 langfuse介绍 1. langfuse概念与作用2. 代码3. 页面效果4. 设计模式1. 装饰器模式2. 上下文管理模式1. langfuse概念与作用 Langfuse是一款专为大规模语言模型(LLM)应用开发设计的开源平台。其作用主要包括以下几个方面: 提升开发效率:通过消除LLM应用构…

在 React 中使用 Web Components 的实践操作

前言 在现代前端开发中&#xff0c;React 和 Web Components 都是广泛使用且备受欢迎的技术。React 是一个用于构建用户界面的 JavaScript 库&#xff0c;提供了组件化的开发方式和高效的状态管理&#xff0c;而 Web Components 是一套原生的浏览器技术标准&#xff0c;允许开…

C++单例模式精解

单例模式&#xff08;重点*&#xff09; 单例模式是23种常用设计模式中最简单的设计模式之一&#xff0c;它提供了一种创建对象的方式&#xff0c;确保只有单个对象被创建。这个设计模式主要目的是想在整个系统中只能出现类的一个实例&#xff0c;即一个类只有一个对象。 将单…

【微服务】java中http调用组件深入实战详解

目录 一、前言 二、http调用概述 2.1 什么是http调用 2.1.1 http调用步骤 2.2 HTTP调用特点 2.3 HTTP调用应用场景 三、微服务场景下http调用概述 3.1 微服务开发中http调用场景 3.2 微服务组件中http的应用 四、常用的http调用组件 4.1 java中常用的http组件介绍 4…

Implementing SAP BPC Embedded - 2nd Edition

Implementing SAP BPC Embedded - 2nd Edition

stm32第四天控制蜂鸣器

一&#xff1a; 1.蜂鸣器的种类 蜂鸣器是一种常用的电子发声元器件&#xff0c;采用直流电压供电。广泛应用于计算机&#xff0c;打ED机&#xff0c;报警器&#xff0c;电子玩具&#xff0c;汽车电子设备灯等产品中常见的蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。 2.蜂鸣器的控制…

Swift 中 associatedtype 的用法详解

目录 前言 1.什么是associatedtype 2.associatedtype 的作用 1.让协议支持泛型 2.让协议支持不同的数据类型 3.结合 where 关键字限制类型 4.什么时候使用 associatedtype 5.总结 前言 在 Swift 语言中&#xff0c;泛型&#xff08;Generics&#xff09;是一个非常强大…

每日Attention学习26——Dynamic Weighted Feature Fusion

模块出处 [ACM MM 23] [link] [code] Efficient Parallel Multi-Scale Detail and Semantic Encoding Network for Lightweight Semantic Segmentation 模块名称 Dynamic Weighted Feature Fusion (DWFF) 模块作用 双级特征融合 模块结构 模块思想 我们提出了 DWFF 策略&am…

OpenCV实现图像特征提取与匹配

‌一、特征检测与描述子提取‌ ‌选择特征检测器‌ 常用算法包括&#xff1a; ‌ORB‌&#xff1a;一种高效的替代SIFT和SURF的算法&#xff0c;主要用于移动机器人和增强现实等领域。适合实时应用&#xff0c;结合FAST关键点与BRIEF描述子‌。‌SIFT&#xff08;尺度不变特征变…

向量检索在AI中的应用与技术解析

关键要点 向量检索在AI中用于信息检索、推荐系统和图像搜索&#xff0c;研究表明其通过高维空间中的向量表示数据来提升搜索相关性。它依赖于嵌入技术&#xff08;如Word2Vec、BERT&#xff09;和近邻算法&#xff08;如kNN、ANN&#xff09;&#xff0c;证据倾向于其在处理大…

事务与异步方法(@Async)协同工作

目录 1. 问题场景与风险 &#xff08;1&#xff09;典型场景 &#xff08;2&#xff09;风险分析 2. 解决方案&#xff1a;事务提交后触发异步操作 &#xff08;1&#xff09;代码示例 &#xff08;2&#xff09;关键注解 3. 原理解析 &#xff08;1&#xff09;事务同…

关于进程的实验(子进程和父进程相关的)

文章目录 1.第一个问题2.第二个问题3.第三个问题 1.第一个问题 编写一段程序&#xff0c;利用系统调用fork( )创建两个进程。当此程序运行时&#xff0c;在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符&#xff1a;父进程显示字符“a”;子进程分别显…

MyBatis 如何创建 SqlSession 对象的?

MyBatis 创建 SqlSession 对象的过程主要由 SqlSessionFactory 接口及其实现类来完成。以下是详细步骤&#xff1a; 1. SqlSessionFactory 接口: SqlSessionFactory 是 MyBatis 的核心接口之一&#xff0c;它负责创建 SqlSession 对象。 你可以将 SqlSessionFactory 视为 Sql…

深度优先搜索(DFS)剪枝技术详解与C++实现

深度优先搜索&#xff08;DFS&#xff09;剪枝技术通过提前终止无效路径的搜索&#xff0c;大幅提升算法效率。以下是五种核心剪枝技术的详细解析及C代码示例&#xff1a; 目录 一、可行性剪枝 C实现示例 二、搜索顺序剪枝 伪代码逻辑 三、最优性剪枝 C实现示例 四、排除…

【双指针】移动零

题目描述&#xff1a; 算法分析&#xff1a; 观察输入输出&#xff1a; 输出中一共分为两个区域&#xff0c;0区和非零区。 但是在处理未完成之前&#xff0c;必然存在着一个零和非零数共存的区域&#xff0c;所以在处理的过程当中一共有三个区域&#xff0c;0区&#xff0c;…