Vue 单文件组件的常用方法

文章介绍了Vue.js中的单文件组件(SFC)概念,包括其结构、命名规范以及如何创建和导出组件。通过示例展示了模板、脚本和样式部分,并提到了VSCode的Vue语法插件支持。最后,文章演示了如何在App.vue和main.js中组织及管理组件。
摘要由CSDN通过智能技术生成

单文件组件指的是:一个文件中只包含一个组件,也就是说一个文件就是一个组件。

单文件组件的后缀名需要定义为 .vue ,需要在脚手架中才能运行 所以本章节内容只是为了引出脚手架的文件格式,理解即可。

单文件组件的文件名一般首字母大写,多个单词使用大驼峰命名  例如:MyCode 

单文件组件格式:

<template>
  <!-- 组件的结构 -->
</template>

<script>
  // 组件的逻辑【Vue的数据、方法等等】
</script>

<style>
  /* 组件的样式 */
</style>

:VSCode 默认不识别 Vue 代码格式,还需要安装 Vue 语法插件 ,安装后输入 < 再按回车键自动生成代码格式.

 创建单文件组件:

<template>
  <div class="demo">
    <h2>{{title}}</h2>
    <p>用户:{{username}}</p>
  </div>
</template>

<script>
  const FrameHead = Vue.extend({
    data() {
      return {
        title: "商城管理系统",
        username: "张三",
      };
    },
  };
  export default FrameHead;
</script>

<style>
  .demo {
    display: flex;
    justify-content: space-between;
    background-color: aqua;
  }
</style>

:组件创建完毕后,还需要在 script 标签中将组件导出,供外界使用。

单文件组件的简写方式【常用】:

<template>
	<div class="demo">
		<h2>{{title}}</h2>
		<p>用户:{{username}}</p>
	</div>
</template>

<script>
	export default {
		name: "FrameHead",
		data() {
			return {
				title: "商城管理系统",
				username: "张三",
			};
		},
	};
</script>

<style>
	.demo {
		display: flex;
		justify-content: space-between;
		background-color: aqua;
	}
</style>


:省略了 Vue.extend() 方法,组件名替换为 name 名。另外 name 名尽量和文件名一样,所以还需要将文件名改为 FrameHead.vue.

 脚手架中常见的文件:

除了 FrameHead.vue 组件 我们再创建一个 FrameNav.vue  组件备用.

<template>
	<div class="demo">
		<ul>
			<li v-for="(item, index) in list" :key="index" @click="isHref(item)">
				{{ item }}
			</li>
		</ul>
	</div>
</template>

<script>
	export default {
		name: "FrameNav",
		data() {
			return {
				list: ["首页", "用户管理", "商品管理", "轮播图管理"]
			};
		},
		methods: {
			isHref(name) {
				alert(`跳转至${name}`);
			}
		}
	};
</script>

<style>
	.demo {
		background-color: blue;
	}
</style>

然后我们再创建一个 App.vue 文件 用于管理所有组件.

<template>
	<div>
		<FrameHead></FrameHead>
		<FrameNav></FrameNav>
	</div>
</template>

<script>
	// 引入组件
	import FrameHead from './FrameHead.vue';
	import FrameNav from './FrameNav.vue';
	export default {
		name: "App",
		components: {
			FrameHead,
			FrameNav
		}
	}
</script>

这些组件创建完毕后,我们还需要创建一个 main.js 作为入口文件,在这个文件中创建 Vue 实例管理这些组件.

import App from './App.vue';

new Vue({
	el: '#root',
	template: `<App>`,
	components: { App },
})

最后还需要创建一个 index.html 页面,用于引入 main.js 入口文件,显示组件中的内容.

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>单文件组件的语法</title>
	</head>
	<body>
		<!-- 准备一个容器 -->
		<div id="root"></div>

		<script src="./js/vue.js"></script>
		<script src="./main.js"></script>
	</body>
</html>

原创作者:吴小糖

创作时间:2023.4.11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小吴吴吴呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值