美文网首页
Vue.js可复用的组件

Vue.js可复用的组件

作者: 俊_杰 | 来源:发表于2017-08-05 20:33 被阅读0次

什么是Vue组件

组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展。

为什么要封装可复用的组件

Vue.js 的接口和语法十分自由,实现同一功能有若干种方法。每个人解决问题的思路不一样,写出来的代码也就不一样,缺乏团队内的规范。

组件,是一个具有一定功能,且不同组件间功能相对独立的模块。组件可以是一个按钮、一个输入框、一个视频播放器等等。

可复用组件,高内聚、低耦合。

以原生组件vue为例,分析一下组件的构成

<video
  src="example.mp4"
  width="320"
  height="240"
  onload="loadHandler"
  onerror="errorHandler">
  Your browser does not support the video tag.
</video>

实例中能看出,组件由状态事件嵌套的片断组成

  • 状态是组件当前的某些数据或属性如video 中的 src、width 和 height

  • 事件是组件在特定时机触发一些操作的行为,如 video 在视频资源加载成果或失败时会触发对应的事件来执行处理

  • 片段指的是嵌套在组件标签中的内容,该内容会在某些条件下展现出来,如在浏览器不支持 video 标签时显示提示信息


在 Vue 组件中,状态称为 props,事件称为 events,片段称为 slots。组件的构成部分也可以理解为组件对外的接口。良好的可复用组件应当定义一个清晰的公开接口。

  • Props 允许外部环境传递数据给组件
  • Events允许组件触发外部环境的副作用
  • Slots 允许外部环境将额外的内容组合在组件中

使用 vue 对 video 组件做拓展,构造出一个支持播放列表的组件 myVideo:

<my-video
  :playlist="playlist"
  width="320"
  height="240"
  @load="loadHandler"
  @error="errorHandler"
  @playnext="nextHandler"
  @playprev="prevHandler">
  <div slot="endpage"></div>
</my-video>

myVideo 组件有着清晰的接口,接收播放列表、播放器宽高等状态,能够触发加载成功或失败、播放上一个或下一个的事件,并且能自定义播放结束时的尾页,可用于插入广告或显示下一个视频信息。


组件间的通信
在 Vue.js 中,父子组件的关系可以总结为 props down, events up 。父组件通过 props 向下传递数据给子组件,子组件通过 events 给父组件发送消息。看看它们是怎么工作的。

父子组件之间的通信

组件的职责
约束好组件的职责,能让组件更好地解耦,知道什么功能是组件实现的,什么功能不需要实现。

组件可以分为通用组件(可复用组件)和业务组件(一次性组件)。

可复用组件实现通用的功能(不会因组件使用的位置、场景而变化):

  • UI的展示
  • 与用户的交互(事件)
  • 动画效果

业务组件实现偏业务化的功能

  • 获取数据
  • 和vuex相关的操作
  • 埋点
  • 引用可复用组件

可复用组件应尽量减少对外部条件的依赖,所有与 vuex 相关的操作都不应在可复用组件中出现。

组件应当避免对其父组件的依赖,不要通过 this.$parent 来操作父组件的示例。父组件也不要通过 this.$children 来引用子组件的示例,而是通过子组件的接口与之交互。

相关文章

  • 说说 Vue.js 组件

    使用 Vue.js 组件,可以提高控件及其 JS 能力的可复用性。 1 定义第一个组件 Vue.js 组件需要注册...

  • Vue组件

    组件(Component)是Vue.js 最强大的功能之一。组件可以扩展出HTMl元素,封装可重用的代码。是可复用...

  • Vue.js可复用的组件

    什么是Vue组件 组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的...

  • 打造 Vue.js 可复用组件

    Vue.js 是一套构建用户界面的渐进式框架。我们可以使用简单的 API 来实现响应式的数据绑定和组合的视图组件。...

  • 自定义组件

    Vue.js的组件就是提高重用性的,让代码可复用。组件与Vue的示例类似,需要注册后才可以使用。注册有全局注册和局...

  • 前端框架:Vue入门

    组件介绍 组件系统是Vue.js其中一个重要的概念,他提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应...

  • Vue.js——60分钟组件快速入门(上篇)

    组件简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应...

  • Vue学习的第十一天

    #编写可复用组件 在编写组件时,最好考虑以后是否要进行复用,可复用组件应当定义一个清晰的公开接口,同时也不要对其使...

  • Vue 自定义组件

    简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,...

  • Vue自定义组件及Vue Router

    简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,...

网友评论

      本文标题:Vue.js可复用的组件

      本文链接:https://www.haomeiwen.com/subject/khswlxtx.html