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) 的相关文章

  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 主干视图 DOM 元素已删除

    我一直在阅读有关 Backbone js 僵尸 或内存泄漏 问题的信息 基本上 当您不再需要该元素时 您必须从 DOM 中解除绑定并删除该元素 以确保所有事件也被删除 现在 我有一个包含几个容器的单页应用程序 div div div div
  • 不和谐机器人 |不和谐.js |类型错误:无法读取未定义的属性“长度”

    我正在制作一个 Discord 机器人 并且正在使用 CodeLyon 的视频作为参考 该错误位于我的 message js 文件中 该文件包含以下内容 require dotenv config create cooldowns map
  • jquery.find() 可以只选择直接子项吗?

    我应该向 jQuery find 提供什么参数来选择元素子元素而不选择其他元素 我不能用 gt 引导选择器 而用 将选择所有后代 而不仅仅是直接子代 我知道 jQuery children 但这是一个库 因此用户能够提供自己的选择器 并且我
  • Web 串行 API - 未捕获(承诺中)DOMException:无法打开串行端口/所需成员 baudRate 未定义

    下面的代码可以在我的 Xubuntu 机器上运行 但现在我在 Kubuntu 上 它不再工作了 它不会打开端口 Arduino IDE 工作正常 可以向开发板写入代码 并且我可以在 Chrome 中选择设备 Arduino Uno 但当我尝
  • 如何重置使用 JavaScript 更改的 CSS 属性?

    我的导航按钮的宽度从 100px 增加到 150px 当鼠标悬停在 nav li hover width 150px 但是使用 javascript 我已经做到了 无论选择哪个选项 宽度都将继续为 150px 当选择每个选项时 它会使其他选
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • Node.js:如何在检索数据(块)时关闭响应/请求

    我正在用 node js 构建一个应用程序 它加载多个页面并分析内容 因为 node js 发送块 所以我可以分析这些块 如果一个块包含例如索引 nofollow 我想关闭该连接并继续其余部分 var host example com to
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 如何将vue组件插入到contenteditable div中

    我想用 vue 创建简单的所见即所得编辑器 我发现只有一个在 vue js 上创建的真正的所见即所得编辑器 这里是 https quasar dev vue components editor 但我没有发现有插入图像的能力 其他 vue w
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比

随机推荐

  • 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 我们只需要写