Vue入门教程--vue的组件功能Component详解(article:16)

Vue实战之Vue中组件(component) es6基本语法及使用 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>vue之系列课程</title> </head> <body> <div id="app"> <h1>{{msg}}</h1> <!-- ES6: EcmaScri 阅读详情

Vue.js 初步入门


组件(Component)是 Vue.js 最强大的功能之一。
组件可以扩展 HTML 元素,封装可重用的代码。
组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树:
在这里插入图片描述

使用简介

注册一个全局组件:Vue.component('组件名称', {配置选项})
注册一个私有组件:components:{'组件名称':{配置选项}}

在HTML页面调用组件:<组件名称></组件名称>

使用详解

先用一个全局组件实例来解释:

		//my-comp是组件名,因为标签不能包含大写字母,所以用驼峰命名法等价的xx-xxxx来命名
		Vue.component('my-comp',{
			//这是数据域,data必须是一个函数,这样的好处就是
			//每个实例可以维护一份被返回对象的独立的拷贝,如果 data 是一个对象则会影响到其他实例
			data:function(){
				return {
					//这是两个数据元素
					content:"这是一个自定义组件",
					count:0
				}
			},
			//方法域,里面包含了组件要用的方法
			methods:{
				mymethod(){
					this.count++;
				}
			},
			//这是标签模板,里面可以自定义任何标签
			template:"<div><h3>{{content}}</h3><br/><button @click='mymethod'>{{count}}</button></div>",
			
		});
			<my-comp></my-comp>
			<my-comp></my-comp>
			<my-comp></my-comp>

注意项已经说明了,组件中的 data 不是一个对象,而是一个函数,否则你的相同模板的其他组件中的变量的值会时刻保持一致。
而且要使用自定义组件,就必须得用一个根元素将他们包裹起来,否则会报错。
在这里插入图片描述

现在有一个新问题,就是如何将父组件的数据传递给子属性。

prop

prop 是父组件用来传递数据的一个自定义属性。
父组件的数据需要通过 props 把数据传给子组件,子组件需要显式地用 props 选项声明 “prop”:

			components:{
				child:{
					props:['msg'],
					template:'<h3>{{msg}}</h3>'
				}
			}


		<child msg="你好,vue"></child>

这样,就可以把父组件中的值传递给子组件进行处理。
在这里插入图片描述

动态 Prop

可以将props中的值看作是模板标签的一个类似于v-text的属性,采用v-bind绑定,然后将data中的值传给它,就可以动态更改这个值。

			<input type="text" v-model="msg2" />
			<child :msg="msg2"></child>


			data:{
				// msg:'hello msg'
				msg2:'hello vue'
			},
			components:{
				child:{
					props:['msg'],
					template:'<h3>{{msg}}</h3>'
				}
			}

要注意的是:,prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来。
在这里插入图片描述

Prop验证

组件可以为 props 指定验证要求。
为了定制 prop 的验证方式,你可以为 props 中的值提供一个带有验证需求的对象,而不是一个字符串数组。例如:

Vue.component('my-component', {
  props: {
    // 基础的类型检查 (`null` 和 `undefined` 会通过任何类型验证)
    propA: Number,
    // 多个可能的类型
    propB: [String, Number],
    // 必填的字符串
    propC: {
      type: String,
      required: true
    },
    // 带有默认值的数字
    propD: {
      type: Number,
      default: 100
    },
    // 带有默认值的对象
    propE: {
      type: Object,
      // 对象或数组默认值必须从一个工厂函数获取
      default: function () {
        return { message: 'hello' }
      }
    },
    // 自定义验证函数
    propF: {
      validator: function (value) {
        // 这个值必须匹配下列字符串中的一个
        return ['success', 'warning', 'danger'].indexOf(value) !== -1
      }
    }
  }
})

当 prop 验证失败的时候,(开发环境构建版本的) Vue 将会产生一个控制台的警告。
type 可以是下面原生构造器:

  • String
  • Number
  • Boolean
  • Array
  • Object
  • Date
  • Function
  • Symbol
    type 也可以是一个自定义构造器,使用 instanceof 检测。
自定义事件

父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,就需要使用自定义事件!
我们可以使用 v-on 绑定自定义事件, 每个 Vue 实例都实现了事件接口(Events interface),即:

  • 使用 $on(eventName) 监听事件
  • 使用 $emit(eventName) 触发事件

另外,父组件可以在使用子组件的地方直接用 v-on 来监听子组件触发的事件。

      <p>{{ total }}</p>
      <button-counter v-on:increment="incrementTotal"></button-counter>
      <button-counter v-on:increment="incrementTotal"></button-counter>

这里为自定义组件button-counter 绑定了increment事件,事件指向incrementTotal。

Vue.component('button-counter', {
  template: '<button v-on:click="incrementHandler">{{ counter }}</button>',
  data: function () {
    return {
      counter: 0
    }
  },
  methods: {
    incrementHandler: function () {
      this.counter += 1
      this.$emit('increment')
    }
  },
})
new Vue({
  el: '#counter-event-example',
  data: {
    total: 0
  },
  methods: {
    incrementTotal: function () {
      this.total += 1
    }
  }
})

在自定义的组件中,为按钮添加了单击事件,单击事件触发效果每次为计数器count加1,而且还用$emit触发了监听父组件的increment事件,该事件也每次为计数器total加1。
在这里插入图片描述


前端必知必会-Vue 组件Components 组件是可重复使用且自包含的代码片段,它封装了用户界面的特定部分,以便我们可以制作可扩展且更易于维护的 Vue 应用程序。我们可以自己在 Vue 中制作组件,也可以使用我们稍后将了解的内置组件,例如 或。这里我们将重点介绍我们自己制作的组件。本文介绍了Vue 组件Components的使用,如有问题欢迎私信和评论。 阅读详情

相关推荐

一小时搭建Spring Boot+Vue 3博客系统:从零到部署的实战指南

在Web开发领域,前后端分离架构已成为构建现代应用的主流范式。其核心原理是将用户界面与业务逻辑解耦,前端专注于交互与数据展示,后端则提供标准化的API接口。这种架构的技术价值在于提升了开发效率、增强了系统可维护性,并支持团队并行协作。在实际工程实践中,Spring Boot凭借其快速启动和简化配置的特性,成为构建RESTful API服务的首选后端框架;而Vue 3则以其响应式系统和组合式API,为构建动态、高效的单页面应用提供了强大支持。结合MyBatis-Plus等高效数据持久层工具,开发者可以快速实现

weixin_30271335的博客 858

Vue中component标签的了解

</div>data() {return {// show 表示要展示的组件的名字show: 'A'},A,B

Amy_ly的博客 7046

SpringBoot+Vue3博客管理系统实战:从零搭建前后端分离项目

这次我们来看一个完整的博客管理项目实战,从零开始手把手教你搭建一个基于 SpringBoot 和 Vue3 的前后端分离系统。这个项目不是简单的概念介绍,而是聚焦于“能不能跑起来”、“如何一步步实现”以及“开发中会遇到哪些坑”。对于想学习全栈开发、寻找毕业设计课题,或者希望快速构建一个具备增删改查、用户权限等核心功能的管理系统的开发者来说,这篇文章可以直接跟着操作。 本文将带你完成从环境准备、项目创建、数据库设计、前后端编码、接口联调到最终打包部署的全过程。核心是实战,我们会重点关注技术选型的理由、每一步的

weixin_30627341的博客 384

Vue之Vue.component解析

前言 本篇文章打算分析梳理下Vue提供的创建组件的方法,打开Vue官网,在API中只有Vue.component和Vue.extend提供组件的创建。 严格意义上是这么说,但是在实际项目中常使用局部注册以及文件即组件这种方式来实现开发,这里先不讨论这种方式背后的处理,主要放在Vue.component和Vue.extend这两个API的逻辑处理。 具体梳理 结合简单实例来梳理下整个的处理逻辑,实例...

玉案轩窗的博客 4万+

Spring Boot+Vue全栈开发实战指南

全栈开发结合了前后端技术优势,Spring Boot作为Java生态中的高效后端框架,通过自动配置和丰富的企业级功能简化开发;Vue.js作为渐进式前端框架,以其轻量和灵活著称。这种技术组合特别适合快速迭代的中小型项目,如电商和SaaS系统。通过RESTful API实现前后端分离,职责清晰且团队协作效率高。文章详细介绍了从环境配置、项目初始化到核心开发的完整流程,包括数据库设计、服务层实现和前后端联调,并提供了常见问题的解决方案和性能优化建议。

weixin_34080571的博客 336

Spring Boot+Vue构建个性化英语学习系统:前后端分离架构实战

在Web应用开发领域,前后端分离架构已成为主流模式,它通过解耦展示层与业务逻辑层,实现了并行开发与独立部署,显著提升了项目的可维护性和扩展性。其核心原理在于前后端通过RESTful API进行数据交互,前端专注于用户界面与交互体验,后端则提供稳定的数据服务与业务处理。这种架构的技术价值在于能够更好地应对复杂业务需求,支持多端复用,并适应敏捷开发流程。在在线教育、电商平台、内容社区等需要动态交互和个性化服务的应用场景中,前后端分离架构优势尤为明显。本文聚焦于**个性化推荐**与**用户行为分析**这两个关键技

weixin_33762130的博客 494

Vue组件(Component)

在正式介绍组件前,先看一个Vue组件的简单示例感受一下,代码如下:组件是可复用的Vue实例,且带有一个名字,在这个示例中组件名字是button-counter。可以在一个通过new Vue创建的Vue根实例中,把这个组件作为自定义标签来使用,代码如下:Web的组件其实就是页面组成的一部分,好比是计算机中的每一个硬件(如硬盘、键盘、鼠标等),它具有独立的逻辑和功能或界面,同时又能根据规定的接口规则进行相互融合,从而变成一个完整的应用。

leva的博客 1万+

Laravel后台管理系统CatchAdmin开发指南

现代Web开发中,后台管理系统是企业应用的核心组件。基于RBAC模型的权限控制系统和模块化架构设计是构建可扩展管理系统的关键技术。Laravel作为流行的PHP框架,结合Vue.js等前端技术栈,能够快速构建企业级后台系统。CatchAdmin作为Laravel生态中的优秀解决方案,采用Laravel 12.x + Vue 3 + TypeScript技术组合,提供了完整的用户权限管理、系统监控和代码生成功能。这种前后端分离的架构特别适合需要长期维护的中大型项目,开发者可以基于其模块化设计快速实现业务功能,

weixin_33739646的博客 382

vue3后台管理系统搭建步骤(boot-blog + vue3后台管理系统 + vue2前端博客页面)

与vite.config.js在同一级目录下。

pscool的博客 3232

HAL库STM32CubeMX+DHT11温湿度传感器模块化驱动与OLED显示实战

本文详细介绍了基于HAL库和STM32CubeMX开发DHT11温湿度传感器模块化驱动的实战过程。通过精确的时序控制和模块化封装,实现了传感器数据采集,并结合OLED显示模块实时展示温湿度信息,为嵌入式开发者提供了完整的解决方案。

h6j7k8l9p0的博客 1132

Cadence Allegro PCB文件对比实战:3分钟搞定两份设计差异(附颜色标注技巧)

本文详细介绍了如何高效使用Cadence Allegro的Design Compare功能进行PCB文件差异对比。通过实战工作流,可在3分钟内精准定位并理解两份设计在布局、布线、元件等方面的关键差异,并分享了自定义颜色标注技巧,帮助工程师快速聚焦重要修改,提升设计评审与团队协作效率。

weixin_29248653的博客 378

SpringBoot+Vue集成AI评论组件:从原理到实现的完整指南

在Web开发领域,前后端分离架构已成为构建现代应用的主流范式,其核心原理在于将用户界面与业务逻辑解耦,通过API进行数据交互,从而提升开发效率和系统可维护性。这种架构的技术价值在于支持团队并行开发、技术栈灵活选型以及更好的性能扩展。在内容型应用如博客、社区等场景中,用户互动模块是提升活跃度的关键,而评论系统则是其核心组件。传统评论系统面临内容审核效率低、互动体验单一等挑战。随着人工智能技术的普及,将AI能力集成到评论模块,实现智能内容分析与辅助审核,成为提升管理效率和用户体验的有效路径。本文聚焦于如何在Sp

weixin_34258838的博客 281

OriginPro实战:5步搞定碳材料拉曼光谱D峰G峰分析(附完整数据处理流程)

本文详细介绍了使用OriginPro进行碳材料拉曼光谱D峰G峰分析的完整流程,涵盖数据预处理、多图层可视化、高精度分峰拟合等关键步骤。特别针对材料科学研究中的基线漂移、多峰重叠等问题提供专业解决方案,帮助研究者快速完成从原始数据到科研级图表的全流程分析,提升碳材料表征效率与准确性。

vodka的博客 942

全栈实现用户点赞收藏功能:Vue+Spring Boot构建情感化交互模块

在现代Web应用中,用户交互功能如“点赞”和“收藏”是提升用户粘性与收集偏好的核心。其技术原理涉及前端状态管理、后端API设计与数据库持久化,共同构成一个完整的数据闭环。这类功能的技术价值在于通过即时反馈与状态同步,增强用户体验并形成可分析的行为数据。典型的应用场景包括社交平台、内容社区、电商网站及媒体播放器。本文以“音乐曲目喜欢”为具体案例,详细讲解了如何利用Vue 3实现带动画的爱心按钮组件,并结合Spring Boot与MyBatis-Plus构建支持状态切换(Toggle)的RESTful API,

weixin_30824479的博客 409

保姆级教程:Synology NAS共享文件夹从创建到权限设置的完整流程

本文提供了一份详尽的Synology NAS共享文件夹创建与权限设置指南。重点讲解了如何将NAS接入企业AD域,并利用域管理员账户进行集中身份验证和权限管理。文章从基础概念、域环境配置、文件夹创建、精细化权限分配到客户端访问与维护,完整覆盖了构建安全高效企业级文件共享空间的全流程,旨在帮助管理员实现便捷的团队协作与数据安全管理。

u9v0w的博客 552

程序化广告行业(23/89):深度剖析广告效果评估指标

大家好,我一直希望能和大家一起在技术领域不断探索、共同进步。在之前的文章中,我们了解了程序化广告中腾讯的业务布局和广告效果评估的基础概念,今天让我们进一步深入剖析广告效果评估的各项指标,这对理解程序化广告的运作机制至关重要

yyy173611的博客 4863

Spring Boot与Vue 3全栈博客系统开发实战:从零搭建前后端分离项目

在实际企业级应用开发中,Spring Boot 与 Vue 3 的组合已成为构建前后端分离项目的首选技术栈之一。这种架构模式清晰地将后端业务逻辑与前端用户界面解耦,使得团队可以并行开发、独立部署,并利用各自生态的优势。然而,对于许多初学者或希望深入理解全链路开发的开发者而言,从零开始搭建一个功能完整的博客管理系统,会面临诸多挑战:如何设计合理的数据库表结构?如何配置 Spring Boot 与 Vue 3 的集成环境?如何实现前后端的数据交互与状态管理?以及如何将项目打包部署到生产环境?这些问题往往需要跨越

weixin_30336061的博客 361

Cesium 实战 26 - 自定义纹理材质 - 箭头流动线(图片纹理)

Cesium 实战 - 自定义纹理材质 - 箭头流动线(图片纹理)。

非科班Java出身GISer的博客 1400

Vue Router导航守卫与重定向:权限控制与路由拦截实战指南

Vue Router的导航守卫(Nav Guards)是SPA中实现前置权限校验、登录态管理、数据预加载等关键能力的核心机制,其本质是在路由解析阶段介入用户导航行为,而非组件挂载后的响应式处理。相比watch $route或组件内守卫,beforeEach等全局守卫具备更早的执行时机、完整的to/from路由上下文以及同步/异步决策能力,是构建生产级权限系统的技术基石。结合meta元信息声明式配置和redirect路径映射,可实现角色权限动态管控、URL语义统一、防误操作保护等典型工程场景,广泛应用于后台管

weixin_33698043的博客 424

Python地理数据处理 十七:植被物候提取和分析(Savitzky-Golay)

植被是陆地生态系统中最重要的组分之一,也是对气候变化最敏感的组分,其在全球变化过程中起着重要作用,能够指示自然环境中的大气、水、土壤等成分的变化,其年际和季节性变化可以作为地球气候变化的重要指标。此外,由于生态工程保护建设和植被自然生长等因素,中国陆地生态系统发挥了重要的碳汇作用。因此,定量评估植被时空动态变化是制定生态系统可持续发展目标和衡量生态系统固碳潜力的重要前提,卫星遥感数据衍生的生态参量产品为研究长时间序列全球及区域植被时空变化提供了重要数据源。SG滤波能够对物候信息进行平滑,并提取其中的物候信息

amyniez的博客,欢迎交流讨论 4246

NPU性能榨取手把手教程:RK3588上YOLOv5s多线程部署与120FPS极限探索

RK3588 YOLOv5s多线程部署优化指南 本教程深入解析RK3588芯片上YOLOv5s模型的高性能多线程部署方案。RK3588作为瑞芯微旗舰AIoT芯片,内置三核NPU(6TOPS算力)和硬件加速器(RGA/VPU),为AI推理提供强大支持。通过线程池技术,我们将视频处理的读取、推理、后处理等环节解耦并行,显著提升系统吞吐量。教程详细介绍了从PyTorch到RKNN格式的模型转换流程、INT8量化方法,以及基于RKNN C++ SDK的YOLOv5推理核心实现,帮助开发者最大化发挥RK3588的AI

LXY_LOVE36的博客 973

SSM+Vue前后端分离项目实战:在线法律咨询平台开发指南

在Java Web开发领域,SSM(Spring+SpringMVC+MyBatis)框架与Vue.js前端框架的组合,构成了当前企业级应用开发的主流技术栈。其核心原理在于前后端分离架构,后端通过RESTful API提供数据服务,前端负责页面渲染与用户交互,实现了关注点分离与开发效率的提升。这种架构的技术价值在于提升了系统的可维护性、可扩展性,并便于团队协作。其典型应用场景包括各类管理后台、电商平台以及像在线法律咨询平台这样的信息服务系统。本文聚焦于一个基于SSM和Vue的在线法律咨询与律师服务平台,详细

weixin_33898876的博客 426

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SpringBoot2+Vue3全栈博客系统开发实战

现代Web开发中,前后端分离架构已成为主流技术范式。通过SpringBoot实现RESTful API服务,结合Vue3构建响应式前端,可以高效开发全栈应用。这种架构的核心价值在于关注点分离和独立部署能力,特别适合内容管理系统等中后台应用。以博客系统为例,SpringBoot提供稳定的后端支持,包括JWT鉴权、MyBatis-Plus数据访问和MySQL优化;而Vue3的组合式API则大幅提升前端开发效率。该技术组合已被广泛应用于企业级项目开发,能有效解决传统单体应用的维护难题。

weixin_34408624的博客 519

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Spring Boot + Vue3 全栈博客后台管理系统实战教程

前后端分离架构是现代Web应用开发的主流模式,其核心原理是将用户界面与业务逻辑解耦,通过RESTful API进行数据交互。这种架构模式的技术价值在于提升了开发效率、实现了技术栈的灵活选型,并便于团队协作与独立部署。在众多应用场景中,内容管理系统(CMS)和个人博客系统是典型的实践案例。本教程聚焦于使用Spring Boot和Vue3这两个热门框架,手把手教你构建一个功能完备的博客后台管理系统。项目将详细演示如何整合MyBatis-Plus进行高效的数据库操作,并利用Element Plus快速搭建管理界面

weixin_34198881的博客 538

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

React-Blog:深入解析基于React Hooks的前端架构设计

在当今前端开发领域,React Hooks已经成为构建现代Web应用的重要范式。React-Blog项目作为一个基于React Hooks的个人博客系统,展示了如何利用Hooks构建高效、可维护的前端架构。本文将深入探讨这个开源项目的架构设计,帮助开发者理解如何在实际项目中应用React Hooks的最佳实践。 ## 📋 项目概述与技术栈 React-Blog是一个前后端分离的个人博客系统,

gitblog_00524的博客 918

【课程设计】(附源码)ssm+vue.js+mysql+基于ssm店铺评价系统设计与实现 毕业设计201524

店铺评论系统主要功能模块包括站点管理(轮播图、公告栏)、用户管理(管理员)、内容管理(文章、文章类型)、更多管理(学生、商家、商品信息、购物车),采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用SSM框架、Java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对店铺评论系统的各项需求以及技术问题

Biye_Design的博客 2859
上一篇: Vue入门教程--vue的监听属性watch详解(article:15)
下一篇: Vue入门教程--vue的Ajax(axios)请求详解(article:17)
DuCeh
博客等级 码龄10年 7粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值