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>
相关推荐
摘星编程1 天前
React Native鸿蒙:Image本地图片显示
javascript·react native·react.js
局外人LZ1 天前
Uniapp脚手架项目搭建,uniapp+vue3+uView pro+vite+pinia+sass
前端·uni-app·sass
爱上妖精的尾巴1 天前
8-5 WPS JS宏 match、search、replace、split支持正则表达式的字符串函数
开发语言·前端·javascript·wps·jsa
小温冲冲1 天前
通俗且全面精讲单例设计模式
开发语言·javascript·设计模式
意法半导体STM321 天前
【官方原创】FDCAN数据段波特率增加后发送失败的问题分析 LAT1617
javascript·网络·stm32·单片机·嵌入式硬件·安全
为什么不问问神奇的海螺呢丶1 天前
n9e categraf redis监控配置
前端·redis·bootstrap
云飞云共享云桌面1 天前
推荐一些适合10个SolidWorks设计共享算力的服务器硬件配置
运维·服务器·前端·数据库·人工智能
Liu.7741 天前
vue开发h5项目
vue.js
咔咔一顿操作1 天前
轻量无依赖!autoviwe 页面自适应组件实战:从安装到源码深度解析
javascript·arcgis·npm·css3·html5
刘联其1 天前
.net也可以用Electron开发跨平台的桌面程序了
前端·javascript·electron