创建组件01

Vue组件的创建和使用

创建格式

1

< template >标签< /template >

2

< script > < /script >

3

< style > < /style >

javascript 复制代码
	
	<template>
	  	<div>
	    <h1>组件导入</h1>
	    <div class="box">
	    <h3>标题 <button @click="show=!show">{{ show?'y':'n' }}</button></h3>
	      <ul v-show="show">
	        <li>xxxx</li>
	        <li>xxxx</li>
	      </ul>
	    </div>
	  </div>
	</template>
	
	<script>
	export default {
	  data(){
	    return{
	      show:true,
	    }
	  }
	}
	</script>
	
	<style>
	  .box {
	    border: 1px solid #000;
	  }
	</style>
	

使用组件的四步

创建组件,封装要复用的标签、样式、JS代码

把独立的组件封装一个.vue文件中,推荐放到components文件夹

在components文件夹里面创建组件文件 XxxXxx.vue

javascript 复制代码
	//1
	<template>
	  <div>
	  //封装组件
	    <div class="box">
	      <h3>
	        标题 
	       <button @click="show = !show">{{ show ? "hot" : "cold" }}</button>
	      </h3>
	      <ul v-show="show">
	        <li>xxxx</li>
	        <li>xxxx</li>
	        <li>xxxx</li>
	        <li>xxxx</li>
	      </ul>
	    </div>
	  </div>
	</template>
	//2
	<script>
			export default {
			  data() {
			    return {
			      show: true,
			    };
			  },
			};
	</script>
	//3
	<style>
			.box {
			  border: 1px solid #000;
			}
	</style>

引入组件

javascript 复制代码
	<script>
		//引入
		import cpt1 from "./components/01-cpt.vue"
			export default {
			  // 注册小组件
			  components:{
			    // 自己定义组件名:导入变量名
			    //cpt1:cpt1,
			    cpt1,
			  }
			}
	</script>

注册组件

1. 全局注册 Vue.component("组件名",组件)

javascript 复制代码
	
	import cpt2 from"./components/02-cpt";//导入
	//import 组件对象 from 'vue文件路径'
	//全局注册
	Vue.component("cpt2",cpt2);
	//Vue.component("组件名",组件对象)
	

2. 局部注册:XxxXxxx.vue文件中 components:{ }

javascript 复制代码
	<script>
		import cpt1 from "./components/01-cpt.vue"
		export default {
		  // 全局注册 注册小组件
		  components:{
		    // 自己定义组件名:导入变量名(组件对象)
		    //cpt1:cpt1,
		    cpt1,
		  }
		}
	</script>
	

使用组件

命名最好使用驼峰,例如 HmHeader 和 HmMain

注册使用短横线命名法,例如 hm-header 和 hm-main
使用时 < hm-button> < /hm-button>
组件名可使用 :
双标签:<组件名></组件名>
单标签: < XxxXxxx />

注意:

组件名不能和内置的html名相同

javascript 复制代码
	
	<template>
	  <div>
	    <h1>组件导入</h1>
	    <cpt1></cpt1>
	    <cpt1></cpt1>
	  </div>
	</template>
	
相关推荐
To_OC22 分钟前
LC 560 和为 K 的子数组:前缀和配哈希表,这对组合我是真的服了
javascript·算法·程序员
浮生望1 小时前
React 受控与非受控组件:从表单状态管理到实时校验的完整实践
前端
明朝百晓生2 小时前
Deep RL learning[2026/8]
开发语言·javascript·人工智能
糖墨夕2 小时前
第二章:AI Agent 到底是个啥?—— 用生活场景把概念讲明白
前端
Csvn2 小时前
⚡ content-visibility: auto —— 长页面渲染提速的隐藏神器,白捡的性能优化
前端
用户938515635072 小时前
ESLint 代码规范完全指南——从 AST 原理到 flat config 逐行解析
javascript·后端·代码规范
用户938515635072 小时前
深入理解 Next.js:从 SPA 的 SEO 问题到约定式路由与 SSR 原理
前端·后端·全栈
snow@li3 小时前
web:前端500知识点/速查手册
前端
kyriewen4 小时前
今年裁了16万技术人——但字节前端岗反而涨了23%
前端·javascript·面试
用户059540174464 小时前
把 AI Agent 记忆存储验证从 40 分钟手测压到 3 分钟,pytest + Docker 这套组合太顶了
前端·css