Vue-31、Vue与Vuecomponent的关系

1、代码

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>一个重要的内置关系</title>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <script type="text/javascript" src="./js/dayjs.min.js"></script>
    <style>
    </style>
</head>
<body>
    <!--
    1、一个重要的内置关系:VueComponent.prototype._proto_===Vue.prototype
    2、为什么要有这个关系:让组件实例对象(vc)可以访问到Vue原型上的属性、方法。
    -->
<div id="root">

</div>
<script type="text/javascript">
    Vue.config.productionTip = false;
    //第一步创建school组件
    const school = Vue.extend({
        //el:'#root'   //一定不要写el 配置项,因为最终所有的组件都要被一个vm 管理,由vm决定服务于那个容器。
        template: `
          <div>
                <h2>学校名称:{{schoolName}}</h2>
                <h2>学校地址:{{address}}</h2>
                <hr>
          </div>
        `,
        data() {
            return {
                schoolName: '清华大学',
                address: '北京',
            }
        },
    });

    new Vue({
        el: "#root",
        data:{
            msg:'你好'
        }
    });


    console.log(school.prototype.__proto__);
    console.log(Vue.prototype);

    console.log(school.prototype.__proto__ === Vue.prototype);
</script>
</body>
</html>
  • 一个重要的内置关系:VueComponent.prototype.proto===Vue.prototype
  • 为什么要有这个关系:让组件实例对象(vc)可以访问到Vue原型上的属性、方法。

2、关系图

验证 VueComponent.prototype.proto===Vue.prototype

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>一个重要的内置关系</title>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <script type="text/javascript" src="./js/dayjs.min.js"></script>
    <style>
    </style>
</head>
<body>
    <!--
    1、一个重要的内置关系:VueComponent.prototype._proto_===Vue.prototype
    2、为什么要有这个关系:让组件实例对象(vc)可以访问到Vue原型上的属性、方法。
    -->
<div id="root">
    <school></school>
</div>
<script type="text/javascript">
    Vue.config.productionTip = false;
    Vue.prototype.x=99;
    //第一步创建school组件
    const school = Vue.extend({
        //el:'#root'   //一定不要写el 配置项,因为最终所有的组件都要被一个vm 管理,由vm决定服务于那个容器。
        template: `
          <div>
                <h2>学校名称:{{schoolName}}</h2>
                <h2>学校地址:{{address}}</h2>
                <hr>
                <button @click="showX"> 点我输出x</button>
          </div>
        `,
        data() {
            return {
                schoolName: '清华大学',
                address: '北京',
            }
        },
        methods:{
            showX(){
                console.log(this.x)
            }
        }
    });

    new Vue({
        el: "#root",
        data:{
            msg:'你好'
        },
        components:{
            school
        }
    });
    console.log(school.prototype.__proto__);
    console.log(Vue.prototype);
    console.log(school.prototype.__proto__ === Vue.prototype);
</script>
</body>
</html>
相关推荐
弹简特15 分钟前
【Vue3速成】01-npm+vue初体验+vite构建vue工程化
vue.js·arcgis·npm
坚定信念,勇往无前33 分钟前
electron-vite 安装better-sqlite3
javascript·数据库·electron
@菜菜_达40 分钟前
jquery.inputmask插件介绍
前端·javascript·jquery
QuZhengRong40 分钟前
【Luck-Report】缓存
java·前端·后端·vue·excel
jiayong231 小时前
前端面试题库 - 浏览器与网络篇
前端·网络·面试
Csvn1 小时前
小程序开发:微信小程序与 uni-app 实战指南
前端
摸鱼小李上线了1 小时前
vue项目页面添加水印实现方法
前端·javascript·vue.js
砍材农夫1 小时前
物联网 基于netty构建mqtt协议规范(主题通配符订阅)
java·前端·javascript·物联网·netty
彩票管理中心秘书长1 小时前
智能体状态指示:何时思考、何时调用工具、何时出错
前端·后端·程序员
彩票管理中心秘书长1 小时前
React + TypeScript拆解一整套“AI 变现代码流程”
前端·后端·程序员