返回顶部
首页 > 资讯 > 精选 >Vue.js组件是什么
  • 305
分享到

Vue.js组件是什么

2023-06-29 08:06:51 305人浏览 八月长安
摘要

这篇文章给大家分享的是有关vue.js组件是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Vue.js组件的本质及相应的渲染实现引言如果你正在使用Vue.js,那么我想你一定对Vue单文件组件(SFC)不陌生

这篇文章给大家分享的是有关vue.js组件是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Vue.js组件的本质及相应的渲染实现

引言

如果你正在使用Vue.js,那么我想你一定对Vue单文件组件(SFC)不陌生,它是Vue.js框架提供的一种文件格式,在绝大多数应用场景中都是Vue.js官方推荐的项目组织形式,本文就让我们以单文件组件为源去回溯一下组件的本质。

什么是组件

在Vue.js中,单文件组件可以认为是对Vue.js组件的进一步封装,它杂糅了htmljavascript以及CSS三种元素的特点,以<template><script><style>三大块将与一个组件相关的视图、逻辑以及样式整合到了一个基本的特殊文件单位之中,下面是一个单文件组件的示例:

Vue.js组件是什么

你可能不知道,其实在Vue.js内部,上述单文件组件会经由@vue/compiler-sfc编译为标准的JavaScript和CSS,编译后的JavaScript文件可能如下(个人推测,如错,烦请指正):

Vue.js组件是什么

这个函数的返回值是不是很熟悉?这就是一个虚拟DOM对象,在这里你就可以称这个函数为组件!(如果你对虚拟DOM还不熟悉,请参阅我的这篇笔记-为什么Vue.js中要采用虚拟DOM)

对,这就是组件,组件的实质其实就是对一组DOM元素的封装。现在,让我们自己定义一个组件来熟悉巩固一下:

Vue.js组件是什么

综上,我们可以定义一个函数来代表组件,而函数的返回值就代表组件要渲染的内容。

组件的渲染

从上文可以看到,组件的返回值就是虚拟DOM对象,它代表着组件想要渲染的内容。那么在Vue.js中组件是如何渲染的呢?(如果你对Vue.js中虚拟DOM的渲染原理还不甚了解,可以参阅一下我这篇笔记-浅析Vue.js的运行时编译)

为了更加直观地描述,我们先用一个虚拟DOM对象中的tag标签来储存组件函数:

Vue.js组件是什么

你可能对这种描述不是太熟悉,因为以前接触到的虚拟DOM可能都是用tag属性值来描述HTML标签,其实,只要得到渲染器的支持,tag: MyComponent是完全符合语法的。此时,负责把虚拟DOM渲染为真实DOM的渲染器代码实现原理如下:

Vue.js组件是什么

组件的拓展

还记得组件的实质是什么吗?组件的实质就是对一组DOM元素的封装!那么问题来了,在上文中一直都是用一个函数来自定义组件,但是组件的表示方式只能是函数吗?不不不,当然不是,你完全可以使用一个JavaScript对象来自定义组件,如下:

Vue.js组件是什么

在这个MyComponent对象中,属性render函数的返回值是一个虚拟DOM对象,代表着此组件的渲染内容。相应的,为了能够正常使用对象组件渲染DOM,需要对上述举例的渲染器做相应的修改适配,修改如下:

Vue.js组件是什么

在上述代码中,vnode.tag就是表达组件的对象。其实在Vue.js中也有使用对象结构来表达的组件,即有状态组件。

感谢各位的阅读!关于“Vue.js组件是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Vue.js组件是什么

本文链接: https://lsjlt.com/news/323841.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Vue.js组件是什么
    这篇文章给大家分享的是有关Vue.js组件是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Vue.js组件的本质及相应的渲染实现引言如果你正在使用Vue.js,那么我想你一定对Vue单文件组件(SFC)不陌生...
    99+
    2023-06-29
  • Vue.js函数式组件是什么
    这篇文章主要为大家展示了“Vue.js函数式组件是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue.js函数式组件是什么”这篇文章吧。前言如果你是一位前端开发者,又在某些机会下阅读过一些...
    99+
    2023-06-25
  • Vue.js 3.0 中Suspense组件的作用是什么
    今天就跟大家聊聊有关Vue.js 3.0 中Suspense组件的作用是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Suspense组件到底是...
    99+
    2024-04-02
  • Vue.js中组件怎么用
    这篇文章主要介绍Vue.js中组件怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、基本用法在使用 vue-cli 创建的项目中,组件的创建非常方便,只需要新建一个 .vue ...
    99+
    2024-04-02
  • vue.js中什么是事件处理器
    这期内容当中小编将会给大家带来有关vue.js中什么是事件处理器,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。监听事件可以用v-on指令监听DOM事件来触发一些javas...
    99+
    2024-04-02
  • Vue.js组件化怎么实现
    本文小编为大家详细介绍“Vue.js组件化怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue.js组件化怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在这个组织复杂界面问题中,Vue 与 Re...
    99+
    2023-06-27
  • vue.js中怎么封装table组件
    这篇文章将为大家详细讲解有关vue.js中怎么封装table组件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。为什么封装首先为什么封装,是因为追求技术吗,不,是因为懒,不想一直的去粘贴,所以...
    99+
    2023-06-20
  • vue.js 动态组件详解
    :is 动态组件 使用 v-bind:is=”组件名”,会自动去找匹配的组件名,如果没有,则不显示; <div id="app"> <test v-bi...
    99+
    2024-04-02
  • 什么是Bootstrap组件
    这篇文章主要介绍“什么是Bootstrap组件”,在日常操作中,相信很多人在什么是Bootstrap组件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是Bootstrap...
    99+
    2024-04-02
  • 什么是MSScriptControl.ScriptControl组件
    本篇内容主要讲解“什么是MSScriptControl.ScriptControl组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“什么是MSScriptControl.ScriptContro...
    99+
    2023-06-08
  • ViewPropertyObjectAnmator组件是什么
    这篇文章主要介绍了ViewPropertyObjectAnmator组件是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。ViewPropertyObjectAnimato...
    99+
    2023-06-05
  • 怎么创建Vue.js中的单文件组件
    本篇内容主要讲解“怎么创建Vue.js中的单文件组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么创建Vue.js中的单文件组件”吧!什么是单文件组件Vue.js中的单文件组件将HTML,C...
    99+
    2023-07-06
  • vue.js中怎么全局调用MessageBox组件
    vue.js中怎么全局调用MessageBox组件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。组件模板// /src/comp...
    99+
    2024-04-02
  • Vue.js移动端组件库atom-design中手势组件怎么用
    这篇文章将为大家详细讲解有关Vue.js移动端组件库atom-design中手势组件怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。介绍atom-design经过几个...
    99+
    2024-04-02
  • vue.js全局组件和局部组件示例代码
    全局组件和局部组件 全局组件的定义的代码 <!DOCTYPE html> <html> <head> <meta charset="u...
    99+
    2022-12-10
    vue的全局组件 vue 局部组件 vue组件调用
  • Vue.js之mixins混合组件详解
    混合以一种灵活的方式为组件提供分布复用功能。混合对象可以包含任意的组件选项。当组件使用了混合对象时,混合对象的所有选项将被“混入”组件自己的选项中。 一、Mixins的基本用法 ...
    99+
    2024-04-02
  • Vue.js中组件的示例分析
    这篇文章将为大家详细讲解有关Vue.js中组件的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是组件?组件使我们能够将 复杂的 应用程序分解成小块。例如,典型...
    99+
    2024-04-02
  • Vue.js项目中怎么集成WEUI组件库
    这篇文章主要介绍了Vue.js项目中怎么集成WEUI组件库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue.js项目中怎么集成WEUI组件库文章都会有所收获,下面我们一起来看看吧。一、安装WEUI在使用 W...
    99+
    2023-07-05
  • vue.js与react.js的区别是什么
    这篇文章主要介绍“vue.js与react.js的区别是什么”,在日常操作中,相信很多人在vue.js与react.js的区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue.js与react.js...
    99+
    2023-06-27
  • react状态组件是什么
    这篇文章主要介绍了react状态组件是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 react状态组件有2...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作