VueComponent介绍&一个重要的内置关系(VueComponent.prototype.__proto__===Vue.prototype)

2023-11-10

一、VueComponent介绍

关于Vuecomponent:

1.school组件本质是一个名为VueComponent的构造函数,且不是程序员定义的,是Vue.extend生成的。
2.我们只需要写<school/>或<school></school>,Vue解析时会帮我们创建school组件的实例对象,即Vue帮我们执行的: new VueComponent(options).
3.特别注意:每次调用Vue.extend,返回的都是一个全新的VueComponent

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>VueComponent</title>
</head>
<body>

    <div id="root">
        <school></school>
    </div>
    
    <script src="./js/vue.js"></script>
    <script>
        Vue.config.productionTip = false;

        const school = Vue.extend({
            template:`
            <div>
           <div>学校:{{schoolName}}</div>
           <div>地址:{{schoolAddress}}</div>
           </div>
           `,

           data() {
               return {
                schoolName:"尚硅谷",
                schoolAddress:"北京"
               }
           },
        })

        const school1 = Vue.extend({
            template:`
            <div>
           <div>学校:{{schoolName}}</div>
           <div>地址:{{schoolAddress}}</div>
           </div>
           `,

           data() {
               return {
                schoolName:"尚硅谷",
                schoolAddress:"北京"
               }
           },
        })

        //输出school组件
        console.log(school);
        console.log(school === school1);

        new Vue({
            el:"#root",
            components:{
                school
            }
        })
    </script>
</body>
</html>

页面展示&控制台输出:

 二、关于this指向

(1).组件配置中(Vue.extend):
data函数、methods中的函数、watch中的函数、computed中的函数它们的this均是【VueComponent实例对象】

(2).new Vue()配置中:
data函数、methods中的函数、watch中的函数、computed中的函数它们的this均是【vue实例对象】。

 

 三、一个重要的内置关系(VueComponent.prototype.__proto__===Vue.prototype)

VueComponent.prototype.__proto__===Vue.prototype ,这么做是为了让组件实例对象vc可以访问到Vue原型上的属性方法,已达到复用,因为Vue和VueComponent在很大程度上都是相同的(95%),所以像$mount和$watch方法,定义在Vue的原型对象上,然后VueComponent的原型对象的原型对象指向Vue的原型对象,VueComponent和Vue的实例就可以使用同一份方法和属性,而不用写两份一样的。

在Vue.js中,每个Vue组件都是Vue的实例,而Vue的实例原型是Vue.prototype。因此,在Vue.js中,VueComponent.prototype的__proto__属性指向Vue.prototype,这是Vue组件实例与Vue原型之间的内置关系。

简而言之,VueComponent.prototype.proto === Vue.prototype 表示Vue组件实例的原型链中的原型指向Vue的原型。这种关系使得Vue组件实例能够继承Vue的属性和方法,并且能够直接访问Vue原型上的一些特性。

通过这种关系,Vue组件实例可以访问Vue原型上的全局方法、属性和指令,以及Vue实例上的实例方法、生命周期钩子等。同时,它也说明了Vue的原型是Vue组件实例的原型链上的一个环节,使得组件能够拥有和使用Vue的核心功能。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>一个重要的内置对象</title>
</head>
<body>
    

    <script src="./js/vue.js"></script>
    <script>
        Vue.config.productionTip = false;

        const school = Vue.extend({
           template:`
           <div>
           <div>学校:{{schoolName}}</div>
           <div>地址:{{schoolAddress}}</div>
           </div>
           `,
           data() {
               return {
                schoolName:"尚硅谷",
                schoolAddress:"北京"
               }
           },
        })

        console.log(school.prototype.__proto__ === Vue.prototype);
    </script>

</body>
</html>

结果:

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VueComponent介绍&一个重要的内置关系(VueComponent.prototype.__proto__===Vue.prototype) 的相关文章

随机推荐

  • Flutter的oktoast插件详解

    文章目录 简介 详细介绍 安装和导入 导入 在MaterialApp外面套一层OKToast组件 为什么是包住MaterialApp 显示Toast消息 高级使用 Toast位置 Toast持续时间 自定义Toast样式 高级用法 使用场景
  • 微信小程序使用echarts图表,与延迟加载图表,解决echarts文件过大

    微信小程序使用echarts图表 与延迟加载图表 解决echarts文件过大 引入echarts组件 展示echarts图表数据 延迟加载图表 如何解决echarts文件过大 引入echarts组件 前往echarts微信版的github地
  • 【华为OD】

    目录 一 题目描述 二 输入描述 三 输出描述 用例 四 题目解析 五 Java玩法 六 JavaScript玩法 一 题目描述 小明有 n 块木板 第 i 1 lt i lt n 块木板长度为 ai 小明买了一块长度为 m 的木料 这块木
  • revit二次开发之选择集Selection和过滤集FilteredElementCollector例子(Revit-API2016)

    1 目的 获取当前选择集中包含的对象并列举出来 using System using System Collections Generic using System Linq using System Text using System T
  • 图片处理命令行工具ImageMagick介绍

    最近在做百度OCR图片文字识别时 因为免费版OCR接口调用次数有限 就想把多张图片合并成一张进行文字识别 这就需要在代码中进行图片合并操作 在查找图片批量合并方案时 看到了linux的convert命令 可以将多张图片合并 且使用特别方便
  • java使用easypoi--导入,导出

    先引入maven依赖
  • J2EE反射(Reflect)

    1 什么是反射 反射是java语言中的一种机制 通过这种机制可以动态的实例化对象 读写属性 调用方法 2 反射有哪几种方法 1 1实例化对象 c newInstance 实例化 1 2动态调用方法 Method m 找到方法 m invok
  • 启莱OA CloseMsg.aspx SQL注入

    子贡曰 贫而无谄 富而无骄 何如 子曰 可也 未若贫而乐 富而好礼者也 子贡曰 诗 云 如切如磋 如琢如磨 其斯之谓与 子曰 赐也 始可与言 诗 已矣 告诸往而知来者也 漏洞复现 访问漏洞url 使用SQLmap对参数 user 进行注入
  • Python项目如何打包?

    在 Python 中 你可以使用一些工具和技术来打包你的项目 以便于分发和部署 以下是一种常见的方法 1 创建项目结构 首先 你需要组织好你的项目结构 一个常见的做法是创建一个包含项目代码的文件夹 并在其中包含一个名为 init py 的文
  • idea 搭建一个maven 父子项目

    什么是maven 父子项目 意思就是 相当于一个家庭 一个家庭有一个父亲 可能有多个子女 父亲管子女 子女继承父亲的一切 父子工程也一样 目前很多微服务采用了这种模式 父工程 父工程又称为父控制器 只是一个简单的工程 不能单独运行 作用是将
  • 正则表达式回溯引发的生产惨案

    文章目录 背景 问题 原因分析 如何解决 chatgpt 3 5 GP4的表现 未完待续 背景 业务上的一个字段在解析时为了避免脏数据导致后续ETL的异常 决定从源头将该字段严格按照设计的规则去匹配 该字段的上传是设备端传上来的文件中的一个
  • Axure RP9.0 for Mac安装包+安装教程

    Axure 是一款强大的原型设计和开发人员交接软件 经过重新设计和架构 具有新的硬件加速渲染引擎 旨在更快地保存和加载的文件结构以及用于平滑缩放和更快编辑的简化画布 软件 Axure RP 版本 9 0 语言 简体中文 大小 71 98M
  • Oracle 日历表详解(含节假日)

    文章目录 1 概述 2 示例 2 1 判断双休日 2 2 判断节假日 3 扩展 3 1 Python 输出节假日 1 概述 mermaid svg trbLU532c4g4BFr4 font family trebuchet ms verd
  • 学术搜索引擎大全

    学术搜索引擎大全 学术搜索引擎 综合性 Google学术搜索 Scirus学术搜索 BASE搜索 Vascoda搜索 万方数据ilib 百度文档搜索 OJOSE Infomine OA图书馆 开放存取搜索 PDF搜索引擎 SciSeek S
  • unity粒子实现烟雾效果

    粒子实现烟雾效果 运行效果 实现步骤 1 准备一张纹理图 我是随便在网上下了一张烟雾图 没有做任何处理的图片 当然你也可以根据你的需要使用photosh做一些处理 比如雾化 裁剪什么的 unity处理步骤 1 新建工程 2 输入工程名称和路
  • Xilinx COE文件生成

    一 COE文件格式 举个例子 这是一个完整的COE文件 第一行 MEMORY INITIALIZATION RADIX 16 表示的是几进制数据 第二行 MEMORY INITIALIZATION VECTOR 表示你要初始化的内容 然后把
  • 服务器远程管理简介(ILO,BMC,RSA)

    Author Skate time 2016 09 18 转载 http blog csdn net cymm liu article details 8447623 现在说说HP的服务器 好像HP的服务器标配都集成了iLO的 也就是HP自
  • js Buffer常用方法

    构造 alloc构造 10个空间 16进制格式 所以数字16显示为10 var buf1 Buffer alloc 10 16 console log buf1 allocUnsafe构造 分配10个空间 但空间内的数据不一定为空 var
  • 欢迎访问我的个人博客

    双11弄了个服务器 搭建了第一个自己的博客 开心 欢迎来访问 ISHEEPI 之后的博客也会发到自己的网站上了 不远遐路 幸见光临
  • VueComponent介绍&一个重要的内置关系(VueComponent.prototype.__proto__===Vue.prototype)

    一 VueComponent介绍 关于Vuecomponent 1 school组件本质是一个名为VueComponent的构造函数 且不是程序员定义的 是Vue extend生成的 2 我们只需要写