关于VueComponent+Vue组件封装和复用的重要性

关于VueComponent:

每一个组件本质是一个名为VueComponent的构造函数,且不是程序员定义的,是使用Vue.extend方法创建一个组件,然后使用Vue.component方法注册的

组件的使用分成三个步骤
创建组件构造器
调用Vue.extend()方法创建组件的构造器
注册组件
调用Vue.component()方法注册组件
使用组件
在Vue实例的作用范围内使用组件

    <!--3.使用组件-->
  <div id="app">
      <my-cpn></my-cpn>
      <my-cpn></my-cpn>
      <my-cpn></my-cpn>
  </div>
  <script src="vue.js"></script>
  <script>
      //1.创建组件的构造器对象
      const cpnC=Vue.extend({
          //传的参数是个对象
          template:`
          <div>
            <h2>标题</h2>
            <p>内容</p>
          </div>`
      })
      //2.注册组件
      Vue.component('my-cpn',cpnC)
      const app=new Vue({
          el:'#app',
          data:{
              message:'hello'
          }
      })
  </script>

我们需要知道引用组件<my-cpn></my-cpn>时,已经创建和注册好组件

//构造函数  
//正因为构造函数我们在控制台看见的是一个[VueComponent]的函数对象
   function Person(name, height) {
          this.name = name;
          this.height = height;
     }
  
      var boy = new Person('Keit', 120);
      console.log([boy]);
       var a=[boy]
      console.log(a[0]);
      console.log(a[0].name);
      console.log(boy.name); //'Keit'
      console.log(boy.height); //120
  
     var girl = new Person('Samsara', 160);
    console.log(girl.name); //'Samsara'
     console.log(girl.height); //160

关于this指向:
(1)组件配置中:

data函数,methods中的函数,watch中的函数,computed中的函数 它们的this均是{VueComponent实例对象}

(2)new Vue(options)配置中:

data函数,methods中的函数,watch中的函数,computed中的函数,它们的this均是{Vue实例对象}。

VueComponent的实例对象,简称vc(也可称为:组件实例对象)
Vue的实例对象,简称vm

总结:说白了都是创建对象。
组件是对象,组件创建和注册的对象叫vc,他是vue实例在内部new VueComponent(),所以在控制台才会看到VueComponent构造函数。
vue是对象,vue的对象叫vm。是通过new Vue()出来的。

然后说说 vm和vc的区别,区别就是el。vm是vc的管理层,每个在vm中注册的vc都会被vm所管理。

Vue组件封装和复用的重要性:
组件(Component)是Vue.js最强大的功能之一
组件是可复用的Vue 实例,封装了可重用的代码。
组件是独立和可复用的代码组织单元,组件系统是vue核心特性之一。组件可以提升整个项目的开发效率,能够把页面抽象成多个相对独立的模块,让开发者使用小型、独立和通常可复用的组件构建大型应用,解决了我们传统项目开发:效率低、难维护、复用性低等问题。能让web前端代码实现“高内聚”和“低耦合”,使得前端开发的过程变成搭积木的过程。

在vue中,组件是可复用的Vue实例,它拥有独一无二的组件名称,它可以扩展HTML元素,就是以组件名称的方式作为自定义的HTML标签。组件大大提高了代码的复用率。

组件封装的大概过程:
使用Vue.extend方法创建一个组件,然后使用Vue.component方法注册组件。但是我们一般用脚手架开发项目,每个 .vue单文件就是一个组件。在另一组件import 导入,并在components中注册,子组件需要数据,可以在props中接受定义。而子组件修改好数据后,想把数据传递给父组件,可以采用emit方法。

结合项目开发的实际经验去剖析:在用vue开发项目的时候,一般我都会用到组件封装,采用组件化的思想进行项目开发,我在搭建一个项目的时候,会创建一个views目录和一个component目录和一个feature目录,views目录中放页面级的组件,component中放公共组件(如:head(公共头组件),foot(公共底部组件)等),feature目录内放功能组件(如:swiper(轮播功能组件),tabbar(切换功能组件)、list(上拉加载更多功能组件))。

组件封装方便后期程序的维护,每个组件都是单个的功能,互不影响。

比如像中后台系统一般elementUI和项目业务需求做二次封装,像项目中的弹窗的表单一般都是固定的样式,只是内容或者标题不同,我们就可以动态传值去解决,实现组件的封装复用。
或者页面业务代码太多的时候,有的公司可能会要求单页面的代码最好不能超过1200行,这时候我们就可以单功能解耦,可以分成公共性组件和功能性组件。

我有封装一个转盘的组件,它主要就是一个独立的功能性组件,用到可以直接取。还有就是做项目时的有封装的公共的组件,比如说头部和尾部

vue中的$符号实在所有实例中都可用的一个简单约定,这样做会避免和被用户定义的数据和方法产生冲突。

附:
上次面试有人问我jq封装的组件和vue封装的组件的区别,我当时挺蒙蔽的,jq封装干嘛组件呢,没啥用,现在想想,你看Bootstrap框架有封装组件纯静态的组件,其实硬说jq封装的组件和vue组件的区别就是首先jq组件肯定不能像vue组件那样传值啊,复用性多态性肯定比不了的,还有就是vue封装的组件,我用components注册后,是可以自定义扩展成HTML元素使用的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue组件封装复用是指将代码逻辑和功能封装在一个独立的组件,并在需要的地方重复使用该组件的过程。 Vue组件封装可以通过以下步骤实现: 1. 创建组件:使用Vue框架提供的组件选项来创建一个组件。可以使用Vue.extend方法或者直接在Vue实例定义一个组件。 2. 封装功能:在组件添加业务逻辑、数据和方法等功能。可以通过计算属性、监听器、方法等实现具体的功能。 3. 编写模板:使用Vue的模板语法编写组件的结构和样式。通过将标签、属性和事件绑定到组件的数据和方法来实现交互效果。 4. 注册组件:将组件注册到Vue实例,使其可以在其他组件使用。可以使用Vue.component方法全局注册组件,也可以在局部组件通过components选项注册组件。 5. 使用组件:在需要的地方使用组件,可以通过标签的方式将组件插入到页面。 通过封装组件,可以将代码逻辑和UI元素进行有效地拆分和复用。例如,可以将页面重复出现的按钮、表单、卡片等元素封装组件,通过复用组件来提高代码的可维护性和复用性。同时,组件化的思想也使得团队协作更加高效,不同开发者可以独立开发、测试和维护自己负责的组件,最终组合成完整的应用程序。 总之,Vue组件封装复用是一种有效的开发方式,可以提高代码的可维护性和可复用性,同时也促进了团队协作和开发效率的提升。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值