详解Vue与VueComponent的关系

 更新时间:2021年12月03日 15:21:28   作者:奶茶丶  
这篇文章主要为大家介绍了Vue与VueComponent的关系,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

下面这个案例 复习我们之前学过的原型链的知识点

       // 定义一个构造函数
        function Demo() {
            this.a = 1
            this.b = 2
        }
        //创建一个Demo实例对象
        const d = new Demo()
        console.log(Demo.prototype); //显示原型属性
        console.log(d.__proto__); //隐式原型属性
        console.log(Demo.prototype === d.__proto__); //true
        //程序员通过显示原型属性操作原型对象,追加一个x属性,值为99
        Demo.prototype.x = 99
        console.log('@',d.__proto__.x);

根据下面这个组件来分析 VueComponent

<body>
    <div id="root">
         <school></school>
    </div>
    <script>
        Vue.config.productionTip = false
        //定义school组件
        const school = Vue.extend({
            name: 'school',
            template: `
              <div>
                <h2>学校名称:{{name}}</h2>
                <h2>学校地址:{{address}}</h2>
              </div>
            `,
            data() {
                return {
                    name: '尚硅谷',
                    address: '北京'
                }
            }   
        })
        //创建Vue
        new Vue({
            el:'#root',
            components:{
                school,
            }
        })
    </script>
</body>

1、school组件本质是一个名为VueComponent的构造函数,且不是程序员定义的,是Vue.extend生成的

2、我们只需要写<school/>或<school</school>,vue解析时会帮我们创建school组件的实例对象;即Vue帮我们执行的:new VueComponent(options)

3、特别注意:每次调用Vue.extend,返回的都是一个全新的VueComponent

4、关于this指向:

  • 组件配置中:data函数、methods中的函数、watch中的函数、computed中的函数 它们的this均是 VueComponent实例对象
  • new Vue(options)配置中:data函数、methods中的函数、watch中的函数、computed中的函数 它们的this均是 Vue实例对象

5、VueComponent的实例对象,以后简称vc ---- 组件实例对象

重点

  • 一个重要的内置关系:VueComponent.prototype._proto_===Vue.prototype
  • 为什么要有这个关系:让组件实例对象vc可以访问到Vue原型上的属性、方法

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • vue中computed下使用箭头函数会报错问题及解决

    vue中computed下使用箭头函数会报错问题及解决

    这篇文章主要介绍了vue中computed下使用箭头函数会报错问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • uni-app中App与webview双向实时通信详细代码示例

    uni-app中App与webview双向实时通信详细代码示例

    在移动应用开发中,uni-app是一个非常流行的框架,它允许开发者使用一套代码库构建多端应用,包括H5、小程序、App等,这篇文章主要给大家介绍了关于uni-app中App与webview双向实时通信的相关资料,需要的朋友可以参考下
    2024-07-07
  • 前端在el-dialog中嵌套多个el-dialog代码实现

    前端在el-dialog中嵌套多个el-dialog代码实现

    最近使用vue+elementUI做项目,使用过程中很多地方会用到dialog这个组件,有好几个地方用到了dialog的嵌套,下面这篇文章主要给大家介绍了关于前端在el-dialog中嵌套多个el-dialog代码实现的相关资料,需要的朋友可以参考下
    2024-01-01
  • 详解vuex中mutation/action的传参方式

    详解vuex中mutation/action的传参方式

    这篇文章主要介绍了详解vuex中mutation/action的传参方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 浅谈vue 脚手架文件结构及加载过程

    浅谈vue 脚手架文件结构及加载过程

    这篇文章主要介绍了vue脚手架文件结构及加载过程浅谈,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • Vuex入门之Module使用详解

    Vuex入门之Module使用详解

    这篇文章主要介绍了Vuex入门之Module使用详解,由于使用单一状态树,应用的所有状态会集中到一个比较大的对象,当应用变得非常复杂时,store 对象就有可能变得相当臃肿,需要的朋友可以参考下
    2023-11-11
  • vue如何基于el-table实现多页多选及翻页回显过程

    vue如何基于el-table实现多页多选及翻页回显过程

    在最近的一个项目中我需要实现表格的翻页,并且还要实现全选、多选功能,下面这篇文章主要给大家介绍了关于vue如何基于el-table实现多页多选及翻页回显过程的相关资料,需要的朋友可以参考下
    2022-12-12
  • Vue批量图片显示时遇到的路径被解析问题

    Vue批量图片显示时遇到的路径被解析问题

    这篇文章主要介绍了Vue批量图片显示时遇到的路径被解析问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 一文详解Vue3中的setup函数的用法和原理

    一文详解Vue3中的setup函数的用法和原理

    在 Vue3 中,setup 函数是一个新引入的概念,它代替了之前版本中的 data、computed、methods 等选项,用于设置组件的初始状态和逻辑,本文将主要介绍Setup的基本用法和少量原理
    2024-02-02
  • 前端框架Vue父子组件数据双向绑定的实现

    前端框架Vue父子组件数据双向绑定的实现

    Vue项目中经常使用到组件之间的数值传递,实现的方法很多,但是原理上基本大同小异。这篇文章将给大家介绍Vue 父子组件数据单向绑定与Vue 父子组件数据双向绑定的对比从而认识双向绑定
    2021-09-09

最新评论