创建组件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>
	
相关推荐
玄空z8 分钟前
通俗理解 RAG 与微调:给大模型“翻书”还是“洗脑”
javascript
Devin_chen19 分钟前
单例模式渐进式学习指南
前端·javascript
苏西的网络日志32 分钟前
基于 Element Plus 的企业级主题定制方案:SCSS 变量覆盖 + Vite 全局注入实战
前端
吴声子夜歌35 分钟前
Vue3——计算属性和监听属性
前端·vue.js
苏西的网络日志37 分钟前
小程序 web-view 内嵌 H5 的会话管理:Token 失效跳转登录的完整方案
前端
小满zs38 分钟前
Next.js精通SEO第一章(引言)
前端·seo·next.js
Joyee69141 分钟前
RN 的新模块系统 Turbo module
前端·react native
阿民_armin42 分钟前
使用 IntersectionObserver + 哨兵元素实现长列表懒加载
前端·javascript·vue.js
电商API&Tina1 小时前
1688 拍立淘接口(item_search_img)测试与接入实战心得
java·大数据·前端·物联网·oracle·json
不想说话的麋鹿1 小时前
「性能优化」虚拟列表极致优化实战:从原理到源码,打造丝滑滚动体验
前端·vue.js·面试