vue组件component详解

组件介绍

组件

​ 组件是拥有一定功能多个html标签的集合体,是对html标签的封装。

好处

​ 模板中为了实现一个(例如分页)效果,需要绘制20个html标签,如果使用组件,就设置一个标签就可以了,明显提升开发效率。

组件关键字:components、component

私有组件

声明私有组件语法

new Vue({components:{'组件的名称': { 配置对象成员 }, '组件的名称': { 配置对象成员 }...},
})

注意

  1. template设置的各个html标签需要有唯一的根元素节点,一般为div。
  2. 组件名称建议是 xx-yy 的格式。

使用组件语法

<组件名称></组件名称>

组件形式上就是html标签。组件的名字被当做html标签使用。

案例应用

制作一个分页组件并使用。

  <div id="app"><h2>组件应用</h2><com-page></com-page></div><script src="./vue.js"></script><script>var vm = new Vue({el:'#app',// 注册私有组件components:{'com-page':{// template: 设定当前组件拥有的html标签template:`<ul><li>1</li><li>2</li><li>3</li></ul>`}},});</script>

全局组件

声明全局组件语法

Vue.component(名称,{配置对象成员})new Vue()

注意

​ 全局组件需要在new Vue之前设置。

组件内部相关成员

组件是特殊的Vue实例,与Vue实例拥有着基本相同的成员,例如 datamethodsfiltersdirectives(自定义组件)、created等等成员在组件内部都可以设置。

注意

​ 组件data成员 与 Vue实例的不一样,需要通过 function/return 设置,具体要返回一个{}对象。

案例应用

给分页组件设置单击事件、data成员、created生命周期方法并执行:

  <div id="app"><h2>组件应用-其他成员</h2><com-page></com-page></div><script src="./vue.js"></script><script>var vm = new Vue({el:'#app',// 注册私有组件components:{'com-page':{template:`<ul><li>{{ prev }}</li><li>1</li><li>2</li><li>3</li><li @click="xia()">{{ next }}</li></ul>`,created(){console.log('created已经执行了')},methods:{xia(){console.log('进入下一页')}},data:function(){return {prev:'上一页',next:'下一页',}}}},});</script>

function声明data

组件中声明的data成员,值需要是一个function,内部通过return返回{}对象供使用,这个特性必须遵守。

为什么组件的data必须是一个function

​ 组件根据业务需要,可以被使用多次,function会使得每次组件使用的时候都亲自执行并给当前应用分配一个独立的数据对象,这样多个组件的data数据是独立的,互相没有关联、牵扯,互相不会覆盖。

​ 相反,如果直接通过{}对象给data赋值,多次使用组件会造成所有组件的data都是共享的,就是一份数据,一个组件修改data后,其他组件都受到影响,这与业务逻辑是相违背的。

组件 与 Vue实例异同

  1. 组件中的 data 必须是一个 function 并 return 一个 字面量对象。
    (Vue 实例的 data 可以是 字面量对象,也可以是 function/return形式,前者推荐使用)。
  2. 组件中直接通过 template 属性来指定组件的html结构。
    Vue 实例中,一般通过 el 属性来指定渲染的容器,当然也可以使用template。
  3. 组件和Vue实例拥有类似的成员,都有自己的生命周期函数,过滤器,methods、data等成员。

vue组件component详解相关推荐

  1. Vue组件-Confirm详解

    Vue组件-Confirm详解 原作者:爱扎马尾的小狮子 一.使用的地方引用,传入属性和方法 在需要的地方引入组件,然后传入对应的属性和方法 组件 <template> <div : ...

  2. Vue Class Component详解

    类组件 1. @component 使用@Component注解,将类转化为 vue 的组件,以下是一个示例 import vue from 'vue' import Component from ' ...

  3. 一篇由简到难的 Vue 面试题+详解答案

    作者:Big shark@LX 原文:https://juejin.cn/post/6961222829979697165 前言 本文整理了「高频」出现的 Vue 相关面试题并且附带「详解答案」 难度 ...

  4. 【面试题】973- 一篇由简到难的 Vue 面试题+详解答案

    作者:Big shark@LX 原文:https://juejin.cn/post/6961222829979697165 前言 本文整理了「高频」出现的 Vue 相关面试题并且附带「详解答案」 难度 ...

  5. 最全的 Vue 面试题+详解答案

    前言 本文整理了高频出现的 Vue 相关面试题并且附带详解答案 难度分为简单 中等 困难 三种类型 大家可以先不看答案自测一下自己的 Vue 水平哈 如果对原理感兴趣的同学 欢迎查看小编的手写 Vue ...

  6. php动态写入vue,Vue自定义动态组件使用详解

    这次给大家带来Vue自定义动态组件使用详解,Vue自定义动态组件的注意事项有哪些,下面就是实战案例,一起来看一下. 现在基于vue的UI组件库有很多,比如iview,element-ui等.但有时候这 ...

  7. vue高级进阶( 二 ) 8种组件通信详解

    猛兽总是独行,牛羊才成群结队. -------鲁迅 vue组件通信的重要性无需多言...但是你肯定没有全部掌握,所以这第二篇文章应运而生 props和$emit props父传子,$emit子传父,看 ...

  8. 数据列表 多选 html,Vue多选列表组件深入详解

    这篇文章主要介绍了Vue多选列表组件深入详解,这个是vue的基本组件,有需要的同学可以研究下 多选列表 (Multi-Select) 是一种将所有选项列出,并允许用户利用 Ctrl/Shift 键进行 ...

  9. 最全最详细前端vue面试题+详解答案(拿到高薪offer不是梦)

    最全vue面试题+详解答案 1.MVC 和 MVVM 区别 MVC MVC全名是 Model View Controller,时模型 - 视图 - 控制器的缩写,一种软件设计典范. Model(模型) ...

最新文章

  1. 日均350000亿接入量,腾讯TubeMQ性能超过Kafka
  2. linux c 守护进程创建原理及简易方法
  3. select及触发方式,select监听多链接,select与epoll的实现区别
  4. 如何在 Ubuntu 12.04 Server 中安装图形用户界面
  5. Hadoop (HDFS)分布式文件系统基本操作
  6. 使用可视化SQLyog操作数据库与使用idea操作数据库的区别
  7. 使用bootbox.js(二级务必提交书面和数字到数字中国)
  8. Spring框架入门程序:获取Bean的三种方式
  9. 教你如何用C语言做一个简单的贪吃蛇
  10. C语言面试题---函数(一)
  11. 一周企业财报 | 阿迪达斯、盖璞、Natura、舍弗勒、百世集团等11家企业发布业绩...
  12. Leetcode刷题100天—5855. 找出数组中的第 K 大整数(优先队列)—day22
  13. 打了一台滴滴D1后,我开始思考今后还要买车吗?
  14. linux的日志处理之Logrotate
  15. oracle的时间各式,Oracle9i日期格式几点说明
  16. Windows平台OpenGL渲染视频
  17. bigsur cdr文件_macOS Big Sur 11.2 原版引导镜像下载
  18. Spring Boot 学习第一步(搭建初步环境)
  19. 网页制作精华代码大全
  20. php微信wifi扫码连接不上,微信「扫码连WiFi」小程序,教你不用密码一键连Wi-Fi!...

热门文章

  1. html调起苹果手机摄像头_使用HTML5+调用手机摄像头和相册
  2. 企业如何选择适合自己的区块链平台?
  3. 在一家 IT 公司工作 10 年是一种怎样的体验?
  4. PyCharm永久破解
  5. 孟夏五月,这些行业动态你都知道吗?
  6. 【福利】火锅甜品盛宴献给你~夏天还特价
  7. Find–atime –ctime –mtime的用法与区别总结
  8. 《Autosar_BSW高阶配置》总目录_培训教程持续更新中...
  9. vant 索引城市不对_手把手Vue移动端使用vant完成索引栏功能
  10. App Annie获得新一轮6300万美元融资