Vue入门级教程二:组件化开发

server/2024/12/2 17:57:19/

在Vue 入门级教程一中,我们已经对 Vue.js 的基础概念、数据绑定和指令有了初步的了解。本教程将在此基础上,进一步深入探讨 Vue 的组件化开发、事件处理以及计算属性等重要特性,帮助你更全面地掌握 Vue 框架,构建出功能更为丰富的前端应用。

一、组件化开发

Vue.js 的核心优势之一就是其强大的组件化开发能力。组件可以看作是可复用的 Vue 实例,拥有自己的模板、数据和逻辑。通过将页面拆分成多个组件,我们能够提高代码的维护性、可复用性和可测试性。

  1. 全局组件

创建全局组件非常简单。例如,我们创建一个名为 HelloWorld 的全局组件:

Vue Component Example
在上述代码中,我们使用 Vue.component 方法定义了一个名为 hello-world 的全局组件,其模板仅仅是显示一个简单的问候语。然后在根 Vue 实例的模板中,我们像使用普通 HTML 元素一样使用了这个组件。
  1. 局部组件

除了全局组件,我们还可以创建局部组件。局部组件通常在一个特定的 Vue 实例或其他组件内部定义和使用。例如:

Vue Component Example
这里,我们在 app 这个 Vue 实例的 components 选项中定义了 my-component 局部组件,它只能在 app 实例所控制的模板范围内使用。
  1. 组件的传值

组件之间的数据传递是非常常见的需求。父子组件之间可以通过 props 和 $emit 进行数据传递。

首先,在父组件中向子组件传递数据:

Vue Component Props Example
在上述代码中,父组件 app 通过 :message(等同于 v-bind:message)将 parentMessage 数据传递给子组件 child-component,子组件通过 props 选项接收数据并在模板中显示。

而子组件向父组件传递数据则是通过 $emit 事件触发:

Vue Component Emit Example
这里子组件中的按钮点击时,通过 $emit 触发 child-event 事件,并传递数据 'Message from child',父组件通过 @child-event(等同于 v-on:child-event)监听该事件,并在 handleChildEvent 方法中处理接收到的数据。

二、事件处理

Vue.js 提供了方便的事件绑定机制,让我们可以轻松地处理用户交互事件,如点击、输入等。

  1. 基本事件绑定

使用 v-on 指令(简写为 @)可以绑定事件监听器。例如,绑定一个点击事件:

Vue Event Binding Example
当按钮被点击时,handleClick 方法会被调用,并且在控制台输出相应信息。
  1. 事件修饰符

Vue 还提供了一些事件修饰符,用于更精细地控制事件的行为。例如,.prevent 修饰符可以阻止事件的默认行为(如表单提交的默认刷新页面行为),.stop 修饰符可以阻止事件冒泡。

Vue Event Modifiers Example
在这个表单提交的例子中,由于使用了 .prevent 修饰符,点击提交按钮时,表单不会进行默认的页面刷新行为,而是执行我们自定义的 handleSubmit 方法。

三、计算属性

计算属性是 Vue.js 中一个非常有用的特性,它允许我们基于响应式数据创建动态的、可缓存的计算值。

例如,我们有一个包含商品价格和数量的购物车数据,想要计算总价:

Vue Computed Properties Example

Price: ${{ price }}

Quantity: {{ quantity }}

Total: ${{ total }}

在上述代码中,我们定义了一个计算属性 total,它会根据 price 和 quantity 的变化自动重新计算。计算属性会缓存计算结果,只有当它所依赖的数据发生变化时才会重新计算,这有助于提高性能。

http://www.ppmy.cn/server/146790.html

相关文章

【C语言】结构体嵌套

结构体嵌套是指在一个结构体中定义另一个结构体作为其成员。这种方式可以实现更复杂的数据结构设计,便于对数据进行分层管理和组织,广泛应用于实际开发中,例如操作系统内核、嵌入式系统、网络协议解析等。下面是对结构体嵌套的详细介绍&#…

nginx 代理 web service 提供 soap + xml 服务

nginx 代理 web service 提供 soap xml 服务 最关键的配置: # Nginx默认反向后的端口为80,因此存在被代理后的端口为80的问题,这就导致访问出错。主要原因在Nginx的配置文件的host配置时没有设置响应的端口。Host配置只有host,没有对应的p…

快速理解倒排索引在ElasticSearch中的作用

一.基础概念 定义: 倒排索引是一种数据结构,用来加速文本数据的搜索和检索,和传统的索引方式不同,倒排索引会被每个词汇项与包含该词汇项的文档关联起来,从而去实现快速的全文检索。 举例: 在传统的全文…

C语言蓝桥杯进阶

系列文章目录 文章目录 系列文章目录前言一、题目1、在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm 841mm,将 A0 纸沿长边对折后为 A1 纸,大小为 841mm 594mm,在对折的过程中长度直接取下整(实际裁剪时可能有损耗&#xff09…

WPS 文本——在修订模式中、并且保留所有批注的情况下,如何显示全部文本的最终状态

转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/81275360 本文出自【我是干勾鱼的博客】 1 问题 在顶部菜单栏中选择“审阅”选项卡,发现无法显示文本的最终状态 2 原因 这是因为目前在 显示标记-使用批注框 中选择的事&#xf…

【Android】ARouter——强大的路由框架

引言 在我们使用组件化的时候,活动并不在一个模块当中,但是毕竟是一个程序我们需要在不同的模块之间进行跳转,我们会首先想到在需要进行通信的模块下都添加相应的依赖就可以解决这个问题,但这样无疑增加了各个组件之间的耦合性。…

抖店飞鸽客服自动化插件-自动回复或自动转接会话

当自动回复的机器人客服无法解决的一些问题,比如投诉,退款等 自动转接给其他人工控制的客服 抖店飞鸽客服 后台地址为https://im.jinritemai.com/pc_seller_v2/main/workspace 飞鸽客服创建子账号地址https://fxg.jinritemai.com/ffa/w/subaccount/emplo…

详解Qt PDF 之 QPdfDocument与 QPdfView 打开与显示pdf

文章目录 使用Qt PDF:QPdfDocument与QPdfView加载与显示PDF文档引言1. QPdfDocument类1.1 QPdfDocument的构造和加载文档1.2 QPdfDocument的主要功能1.3 错误处理和状态管理 2. QPdfView类2.1 QPdfView的构造和文档设置2.2 QPdfView的视图模式2.3 缩放功能2.4 控件的…