vue ---- 组件

vue的组件

1. 概述

  • 在vue中,可以将一个组件看作是一个页面。在其中可以引入独立的样式/JS/HTML 进行单独的管理
  • 组件可以进行复用
  • 组件化的思想体现了分治的思想
  • 为了保证组件化相互之间互不干扰,则应该在组件内部,单独定义html/js/css

2. 组件的组织

  • 通常一个应用会以一棵嵌套的组件树的形式来组织:
    在这里插入图片描述
  • 为了能在模板中使用,这些组件必须先注册以便 Vue 能够识别。这里有两种组件的注册类型:全局注册和局部注册。

3. 全局组件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>全局组件的定义</title>
	</head>
	<body>
		<div id="app">
			<!-- 如果需要使用组件,在vue渲染区中使用 -->
			<!-- 规则:1.在vue中,引用标签时,默认都是小写字母
						如果需要引入驼峰规则,则使用 - 线代替
					  2.使用组件通过标签引用-->
			<add-num-com></add-num-com>
			<add-num-com></add-num-com>
		</div>
		<!-- 定义模板标签的语法 必须有根标签 -->
		<template id="numTem">
			<div>
				<h1>我是一个组件</h1>
				获取数值 {{num}}
			</div>
		</template>
		<!-- 1.导入js -->
		<script src="../js/vue.js"></script>
		<!-- 2.定义全局组件 -->
		<script>
			/*  1.组件的定义
			* 参数:
			* 	1.组件名称
			* 	2.组件实体内容
			* */
			Vue.component("addNumCom",{
				//属性
				data() {
					return {
						//自定义属性
						num: 100
					}
				},
				//页面标记
				template: "#numTem"
				//方法
			})
			/* 2.实例化vue对象 找到区域,交给vue渲染*/
			const app = new Vue({
				el: "#app",
				
			})
		</script>
	</body>
</html>

4. 局部组件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>局部组件</title>
	</head>
	<body>
		<div id="app">
<!--			<msg-comp></msg-comp>-->
			<msg-com></msg-com>
			<msg-com></msg-com>
		</div>
		<!-- 定义app2 -->
		<div id="app2">
<!--			<msg-comp></msg-comp>-->
<!--			<msg-comp></msg-comp>-->
		</div>
		<!-- 模板标签必须定义在vue渲染div的外面 -->
		<template id="msgTem">
			<div>
				<h3>我是一个局部组件</h3>
			</div>
		</template>
		<script src="../js/vue.js"></script>
		<script>
			let msgCom = {
				template: "#msgTem"
			}
			//定义局部组件,只对当前vue对象有效
			const app = new Vue({
				el: "#app",
				components:{
					//key : value
					/*msgComp: msgCom*/
					//msgCom: msgCom
					//如果在js中,KV相同,可以只写一个
					msgCom,
				}
			})
			const app2 = new Vue({
				el: "#app2",
				
			})
		</script>
	</body>
</html>

5. 关于组件的知识点

  • 为什么使用组件
    • 原来用户编辑页面时,需要引入/维护大量的JS/CSS等.如果数量很多,则导致代码结构混乱.所以需要引入组件化思想.
    • 前端框架为了更好的解耦,采用了"分治"思想的构建代码.前端向后端代码结构看齐.(微服务框架)
    • 组件采用树形结构, 可以将功能小型化.单独维护.
    • 组件是一个独立的个体,内部包含HTML/CSS/JS
    • 使用组件看做就是一个页面
  • 如何理解template属性
    • template标签是组件中定义html标记的模板.
    • template标签必须有根标签div
    • template标签最好定义在body标签内部,写法方便.
  • 关于组件使用有什么注意事项
    • 组件的使用必须在VUE对象渲染的区域中使用.
    • 组件有全局的/有局部的.注意作用域.
    • 在html标签中使用组件时,注意大小写问题.如果是驼峰规则,则使用 "-"连接.
    • 组件必须先定义再使用.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值