component组件
什么是组件?
组件(Component)是Vue js最强大的功能之一。组件可以扩展HTML元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue js 的编译器为它添加特殊功能。在有些情况下,组件也可以表现为用is 特性进行了扩展的原生HTML元素。
所有的Vue组件 同时也都是Vue的实例,所以可接受相同的选项对象(除了一些根级特有的选项)并提供相同的生命周期钩子。
vue组件分为:
局部组件:只能在el定义的范围内使用,
全局组件:可以在随意地方使用
父子组件:之间的传值问题。父子(属性通信)、子父(事件触发)、兄弟通信(EventBus)
template
:’’ 组件要显示的内容
component('',)
注册组件。
data
数据属性:写函数;
接收两个参数:
第一个参数(组件名称):用来使用的标签
第二个参数(组件的描述对象):标识要显示
全局组件注册方式:Vue.component(组件名,{方法})
定义全局组件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><!-- 2.使用组件 类似html标签 --><my-component></my-component></div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>//1.组件名为"conter"; 2.data 写函数; 3.template 写组件的内容(元素和触发的事件)Vue.component("my-component",{ data:function(){return {count:0}},//template 是模板的意思,在 html 里面是一个可以同时控制多个子元素的父元素。在这里定义了组件的内容template:`<button v-on:click="count++">点击计算点击次数:{{count}}次</button>`,});var vm = new Vue({el: "#app",data:{},})
</script>
</html>
局部组件注册方式,直接在Vue实例里面注册
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><child-component></child-component></div>
</body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>var child={template:`<button @click='add2'>我是局部组件:{{m2}}</button>`,data:function(){return {m2:1}},//定义方法methods:{add2:function(){this.m2++}}};var vm = new Vue({el: "#app",components:{"child-component":child}})
</script>
</html>
具名插槽
组件的 template 里面定义好插槽(插座) 对于这种有名称的插槽一般我们叫做具名插槽(或者有名插槽)。
对于没有取名称的插槽一般我们叫做匿名插槽(或者叫做 default 默认插槽)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.p1 {font-size: 24px;}</style>
</head><link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/jquery/2.0.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.js"></script><body><div id="app"><vue-pannel><p slot="main">身体信息</p><h3 slot="footer">底部信息</h3><h3 slot="header">头部信息</h3><p>其他的内容,没有任何一个与之对应的具名插槽,则该内容会被放置在 default插槽里面,如果有的 default插槽的话。如果在 template 里面没有事先定义好 default 插槽,则该段内容会被丢弃</p></vue-pannel></div></body>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>//全局组件Vue.component('vue-pannel', {//组件的 template 里面定义好插槽(插座) 对于这种有名称的插槽一般我们叫做// 具名插槽,或者叫做有名插槽。 对于没有取名称的插槽一般我们叫做匿名插槽(或者叫做 default 默认插槽)//slot插槽 插座template: `<div><p style="color:red;font-size:30px;"><b>全局组件</b></p><slot name="header"></slot><slot name="main"></slot><slot name="footer"></slot><slot name="default"></slot><slot></slot></div>`,});// 局部组件const MyComponent ={template: `<div><p style="color:red;font-size:30px;"><b>局部组件</b></p><slot name="header"></slot><slot name="main"></slot><slot name="footer"></slot><slot name="default"></slot><slot></slot></div>`,}var vm = new Vue({el: "#app",// 局部组件 需要在Vue实例中注册components:{"vue-pannel":MyComponent}})
</script>
</html>
component组件相关推荐
- Salesforce Lightning开发学习(二)Component组件开发实践
lightning的组件区分标准组件.自定义组件和AppExchange组件.标准组件由SF提供,自定义组件由developer自行开发,AppExchange组件由合作伙伴建立.下面我们写一个简单的 ...
- 浅谈Vue内置component组件的应用场景
官方的说明 渲染一个"元组件"为动态组件.依 is 的值,来决定哪个组件被渲染. <!-- 动态组件由 vm 实例的属性值 `componentId` 控制 --> & ...
- ECS之Component组件
洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,最近在跟着大智学习DOTS. Entity之后,咱们来到了Component组件.Component是ECS架构的三个基本元素之 ...
- Java单元测试实践-11.Mock后Stub Spring的@Component组件
Java单元测试实践-00.目录(9万多字文档+700多测试示例) https://blog.csdn.net/a82514921/article/details/107969340 1. Sprin ...
- component组件中的is属性居然有大用?
component组件中的is属性的用法(动态组件渲染) 因为在无序列表中直接放置组件会导致渲染出来的DOM会被放置在无序列表的外层,所以需要通过使用li标签并通过is属性来渲染相应的组件,这样渲染出 ...
- 《UnityAPI.Component组件》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+GetComponent+SendMessage+Tag+立钻哥哥++OK++)
<UnityAPI.Component组件> 版本 作者 参与者 完成日期 备注 UnityAPI_Component_V01_1.0 严立钻 2020.05.26 #<UnityA ...
- 【愚公系列】2022年02月 微信小程序-Component组件的扩展
文章目录 一.Component组件的扩展 二.使用扩展 三.案例解析 一.Component组件的扩展 // behavior.js module.exports = Behavior({defin ...
- 【贪玩巴斯】Unity3D初学圣经(三)—— unity中的基础概念——scene场景,component组件,assets文件夹和Material材质,Mesh Renderer与shader
[贪玩巴斯]Unity3D初学圣经 三-- unity中的基础概念--scene场景,component组件与assets文件夹和Material材质以及Mesh Renderer 和 shader ...
- Component组件基本概念
Component组件的必备元素 1.装饰器:@Component() 用来告知Angular如何处理TypeScript类,包括多个属性,属性值叫做原数据,Angular框架根据原数据值渲染组件并执 ...
最新文章
- “零成本”建设数据中心机房容灾方案
- VSCode配置 Debugger for Chrome插件
- php在数据库中上传图片格式,如何上传图片并在php中保存数据库中的URL
- 开源自动化配置管理工具Puppet入门教程
- easyUI之ComboBox(下拉列表框)
- CTF中基本的Xor解密操作
- Java基础学习笔记二十四 MySQL安装图解
- 武汉涉密信息系统集成资质介绍
- @Primary注解在spring中的使用
- NOIP2010导弹拦截
- Python 数据获取(四)—— BeautifulSoup获取小说内容
- 海信在CES宣布推出75英寸到100英寸的全系全色激光电视产品
- a++与++a同a--与--a代码拆分
- IBM DB2 学习笔记:关系模型、基本概念、数据库实例基本操作、数据库对象
- 【Vim】基本操作及命令集详解
- python执行定时任务
- android 逐行显示 动画,在ImageView android中显示隔行扫描(逐行扫描)图像
- Matlab R2022a安装
- js动态删除表格中的某一行
- PHP实现基于文本的莫斯电码生成器
热门文章
- mac下mysql修改密码
- VMware虚拟机安装Linux教程(CentOS7)
- 使用c语言实现复数运算的程序,用C语言实现的复数运算程序设计
- 碳排放权、碳交易日度数据分部门、能源碳排放面板数据
- QT笔记——临时的悬浮窗口
- How to deal with interlaced video
- iOS游戏开发之使用 Spritekit 框架和 Swift 的 iOS 2D 太空射击游戏(教程含源码)
- 程序员的工资大概多少?
- Opencv中BGR、YUV、YUV_I420\NV12分析
- 微信小程序实现商城案例(赋源码)