当前位置: 首页 > news >正文

vue 项目中 components 和 views 包下的组件功能区别对比,示例演示

在 Vue 项目中,componentsviews 目录下的组件功能定位和用途有明显区别:


1. components 目录

功能定位
  • 存放 通用的可复用组件(如 UI 基础组件、业务模块组件)。
  • 提供跨页面、跨功能的共享能力。
  • 通常是独立功能单元,不依赖特定业务场景。
典型场景
  • 全局组件(如 Header、Footer、Button、Modal)。
  • 工具类组件(如日期选择器、表格、分页器)。
  • 业务模块组件(如商品卡片、评论列表)。
示例代码
// components/Header.vue
<template><header class="header">我是全局头部</header>
</template>
// 在某个页面中使用
import Header from '@/components/Header.vue';export default {components: { Header },template: `<div><Header /> 当前页面内容</div>`,
};

2. views 目录

功能定位
  • 存放 与路由直接绑定的页面级组件(如首页、详情页、登录页)。
  • 每个视图代表一个完整的功能页面,通常不可复用。
  • 专注于单一页面逻辑,不与其他页面共享。
典型场景
  • 路由映射的页面(如 /home/about)。
  • 独立业务模块的主视图(如商品详情页、订单结算页)。
示例代码
// views/HomePage.vue
<template><div><h1>这是首页</h1><!-- 引入全局组件 --><Header /></div>
</template>
// 路由配置
import HomePage from '@/views/HomePage.vue';const routes = [{ path: '/', component: HomePage },
];

关键区别对比表

components 目录views 目录
用途可复用的通用组件单页面视图组件
复用性高(多处引用)低(仅绑定到特定路由)
依赖关系独立于业务场景可能依赖其他组件
路由关联无直接关联直接绑定到路由路径

实际项目结构示例

src/
├── components/          # 全局可复用组件
│   ├── Header.vue
│   ├── Footer.vue
│   └── Button.vue
├── views/              # 页面级视图组件
│   ├── HomePage.vue
│   ├── AboutPage.vue
│   └── Login.vue
└── router/             # 路由配置├── index.js        # 定义路由与 views 的映射

为什么需要区分?

  1. 提高代码维护性:复用组件集中管理,减少重复代码。
  2. 明确职责边界:页面视图专注自身逻辑,通用功能下沉为组件。
  3. 优化打包效率:按需加载视图组件(结合 Vue Router 懒加载)。

通过这种分层设计,可以构建出清晰、可扩展的 Vue 项目架构。

http://www.lryc.cn/news/598184.html

相关文章:

  • vue递归树形结构删除不符合数据 生成一个新数组
  • 基于深度学习的图像分类:使用MobileNet实现高效分类
  • 【SpringAI实战】提示词工程实现哄哄模拟器
  • MCNN-BiLSTM-Attention分类预测模型等!
  • 模型量化方式及分类
  • OpenAI最新大模型GPT-4o体验之Code Copilot AI编程大模型
  • 边缘智能体:轻量化部署与离线运行
  • 高可用架构模式——如何应对接口级的故障
  • node.js中的fs与path模块
  • Unity 多人游戏框架学习系列十
  • 贪心算法Day6学习心得
  • 苹果带火的3D高斯泼溅产品化玩法:一个成熟产品参考——以DJI Terra为例解析空间智能产品的商业化路径
  • ML3072 MQTT连接阿里云
  • 企业资产管理智能化:IT运维如何借力数字化管理提效避坑?
  • 计算机网络-- TCP 滑动窗口与拥塞控制
  • 亚马逊云科技:引领云计算新时代,开启无限可能
  • JavaSE:学习输入输出编写简单的程序
  • 【Unity开发】飞机大战项目实现总结
  • DigitalOcean 一键模型部署,新增支持百度开源大模型ERNIE 4.5 21B
  • Socket编程入门:从IP到端口全解析
  • element-plus 组件 ElMessage、ElLoading 弹框 和加载css 样式展示异常总结
  • SQL基础⑫ | 视图篇
  • 若用dnf下载的nginx和源文件下载的nginx冲突
  • 【学习路线】JavaScript全栈开发攻略:前端到后端的完整征程
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现卫星图像识别(C#代码,UI界面版)
  • 20-ospf技术
  • Java Map.Entry 核心解析
  • IPSec VPN -- 野蛮模式
  • OSPF开放式最短路径优先
  • C# 泛型(泛型方法)