怎样在 VS Code 中快速创建 Vue 单文件组件(SFC)的基础模板结构?

问题

在Vue项目的开发中,我们经常遇到一个问题,创建新组件时要自己输入基本的框架,比如:

<template><div class="page-box"></div>
</template><script>
export default {name: '',data() {return {}}
}
</script><style scoped>
.page-box {}
</style>

那有没有办法像生成一个html文件那样在vscode里快速生成Vue组件框架呢?
在这里插入图片描述
在这里插入图片描述

实践

根据我的需要,我选择了比较简单的方案:使用 VSCode 的用户代码片段功能。

  • 打开命令面板:
    • Windows/Linux: Ctrl + Shift + P
    • Mac: Cmd + Shift + P
  • 输入并选择:「Snippets: Configure Snippets」
  • 选择「vue」或「新建全局代码片段文件」
  • 添加以下内容:
{"Vue 2 Component": {"prefix": "v2","body": ["<template>","  <div class=\"$1\">","    $2","  </div>","</template>","","<script>","export default {","  name: '$3',","  data() {","    return {","      $4","    }","  },","  methods: {","    $5","  }","}","</script>","","<style scoped lang=\"${6:less}\">",".$1 {","  $7","}","</style>"],"description": "Vue 2 标准组件结构"},
}

使用方法:在 .vue 文件中输入 v2,按 Tab 键自动补全模板。
在这里插入图片描述

其他方案(from DeepSeek)

以下是快速创建 Vue 组件文件的几种高效方法,适用于不同开发场景:


方法 1:使用 IDE/编辑器模板(最推荐)

VSCode 用户
  1. 安装插件

    • Vue VSCode Snippets(提供代码片段)
    • File Templates(自定义文件模板)
  2. 创建模板文件
    在项目根目录新建 .vscode/templates/vue-component.template

    <template><div class="${1:component-name}">${2:<!-- 内容区 -->}</div>
    </template><script>
    export default {name: '${3:ComponentName}',${4:// 组件逻辑}
    }
    </script><style scoped lang="${5:less}">
    .${1:component-name} {${6:/* 样式 */}
    }
    </style>
    
  3. 快捷键生成
    右键 → New File from Template 选择模板


方法 2:命令行工具(适合批量创建)

使用 plop.js(自动化脚手架)
  1. 安装:
    npm install -g plop
    
  2. 创建 plopfile.js
    module.exports = function (plop) {plop.setGenerator('component', {description: 'Create a Vue component',prompts: [{type: 'input',name: 'name',message: 'Component name (PascalCase):'}],actions: [{type: 'add',path: 'src/components/{{pascalCase name}}.vue',templateFile: 'templates/component.hbs'}]});
    }
    
  3. 运行:
    plop component
    

方法 3:NPM 脚本(极简版)

package.json 中添加脚本:

"scripts": {"new:component": "bash ./scripts/new-component.sh"
}

创建 scripts/new-component.sh

#!/bin/bash
echo "Enter component name (PascalCase):"
read namecat > "src/components/${name}.vue" <<EOF
<template><div class="${name,}"><!-- 内容 --></div>
</template><script>
export default {name: '${name}'
}
</script><style scoped>
.${name,} {}
</style>
EOFecho "Component ${name}.vue created!"

运行:

npm run new:component

方法 4:在线工具生成

  • Vue Component Generator(网页工具):
    https://vue-component-generator.netlify.app/
    勾选选项后直接下载 .vue 文件

不同场景推荐方案

场景推荐方案优点
少量组件IDE 模板无需配置,即开即用
大型项目plop.js支持批量生成,统一代码风格
团队协作共享代码片段/Snippet确保团队规范一致
需要高度自定义自定义 Shell/Python 脚本灵活控制生成逻辑

附:标准 Vue 3 组件模板(组合式 API)

<template><div class="component-name"><h1>{{ msg }}</h1></div>
</template><script setup>
import { ref } from 'vue'const msg = ref('Hello World')
</script><style scoped>
.component-name {color: var(--primary-color);
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/88786.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/88786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高防IP在服务器中的作用都有哪些?

高防IP作为一种通过技术手段让用户网络服务更加安全的一种IP地址&#xff0c;有着更高的防御能力&#xff0c;有着强大的流量清洗中心和防御系统&#xff0c;帮助企业实时监控网络流量&#xff0c;将恶意的用户请求识别并过滤掉&#xff0c;保护目标服务器不会受到网络攻击&…

实战 X-AnyLabeling:构建高效自动标注系统的工程实践

文章目录 一、项目背景与目标二、系统架构与模块划分2.1 模块组成说明2.2 架构图 三、模型封装与平台对接3.1 模型封装接口3.2 接入 X-AnyLabeling 平台 四、可视化与预测验证4.1 UI 预测标签预览 五、性能优化与工程经验5.1 模型加速与推理优化5.2 经验总结5.3 实际效果 本文将…

UC3842/UC3843反激教程教学开关电源 反激设计步骤,每一关键元器件计算

资料下载地址&#xff1a;UC3842/UC3843反激教程教学开关电源 反激设计步骤&#xff0c;每一关键元器件计算 1、原理图 2、PCB图 3、变压器设计资料 4、开关电源设计资料 5、主要元器件说明书 6、系统整体资料 7、说明文档 7.1、电源设计概述 电源规格&#xff1a;设计一款 2…

Docker 入门教程(二):Docker 的基本原理

文章目录 &#x1f433; Docker 入门教程&#xff08;二&#xff09;&#xff1a;Docker 的基本原理1. Docker 架构总览&#xff1a;三大核心角色2. 镜像与容器的关系3. 容器启动流程&#xff1a;docker run 背后发生了什么&#xff1f; &#x1f433; Docker 入门教程&#xf…

21.安卓逆向2-frida hook技术-HookOkHttp的拦截器

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码&#xff1…

小程序入门:swpier 和 swpier-item 的基本使用

在前端开发中&#xff0c;创建交互式的用户界面组件是至关重要的。今天&#xff0c;我们将深入探讨 swpier 和 swpier-item 的基本使用方法&#xff0c;这两个组件在构建轮播图等滑动效果的场景中非常实用。 一、swpier 组件概述 swpier 组件是实现滑动效果的核心容器。它负责…

SQL学习笔记4

约束 1、约束 约束&#xff0c;是指作用在表中字段上的规则&#xff0c;用于限制字段输入的数据&#xff0c;使得表格式统一&#xff0c;数据内容正确。同一个字段的约束可以有多个 约束包括&#xff1a; 非空约束&#xff0c;限制表中的值不为null:not null 唯一约束&…

力扣刷题(第七十天)

灵感来源 - 保持更新&#xff0c;努力学习 - python脚本学习 比特位计数 解题思路 对于任意整数 x&#xff0c;其 1 的个数等于 x // 2 的 1 的个数加上 x % 2。状态转移方程&#xff1a;dp[x] dp[x // 2] (x % 2)。 class Solution:def countBits(self, n: int) ->…

鸿蒙网络编程系列56-仓颉版通过数据包结束标志解决TCP粘包问题

1. TCP粘包问题解决思路 在本系列的上一篇文章演示了TCP数据粘包的原因以及可能的解决方法&#xff0c;本文将通过其中的添加数据包结束标志的方法来解决这个问题。我们知道&#xff0c;数据粘包的原因是因为发送的时候没有标明数据包的边界&#xff0c;那么&#xff0c;我们人…

Redis网络通信模块深度解析:单线程Reactor到多线程IO的架构演进

一、核心架构&#xff1a;单线程Reactor模型 Redis网络模块采用经典Reactor模式&#xff0c;核心流程如下&#xff1a; void aeMain(aeEventLoop *eventLoop) {while (!eventLoop->stop) {// 前置钩子&#xff08;集群心跳/数据持久化&#xff09;if (eventLoop->befor…

PILCO: 基于模型的高效策略搜索方法原理解析

PILCO: 基于模型的高效策略搜索方法原理解析 PILCO (Probabilistic Inference for Learning Control) 是一种基于模型的强化学习算法&#xff0c;由Marc Deisenroth和Carl Rasmussen于2011年提出。该算法在数据效率方面表现出色&#xff0c;能够以极少的样本数据实现有效学习。…

大语言模型训练中的自监督学习和其他训练方式

大语言模型训练中的自监督学习和其他训练方式。 自监督学习&#xff08;Self-Supervised Learning&#xff09; 1. 什么是自监督学习&#xff1f; 自监督学习是一种不需要人工标注数据的训练方式&#xff0c;模型从数据本身学习特征和模式。 在语言模型中的具体实现&#x…

[mcp-servers] 工具与资源 | 模型上下文协议MCP | 锚点分类

第三章&#xff1a;工具与资源 欢迎回来&#xff01; 在之前的旅程中&#xff0c;我们认识了客户端&#xff08;第一章&#xff1a;客户端&#xff09;——AI的信使组件 以及MCP服务器&#xff08;第二章&#xff1a;MCP服务器&#xff09;——接收请求并具备执行能力的智能助…

2025年06月27日Github流行趋势

项目名称&#xff1a;edit 项目地址 url&#xff1a;https://github.com/microsoft/edit项目语言&#xff1a;Rust历史 star 数&#xff1a;10807今日 star 数&#xff1a;411项目维护者&#xff1a;lhecker, DHowett, b6k-dev, rhysd, MingcongBai项目简介&#xff1a;我们都编…

Camera Api 2 和 OPEN GL ES 使用(显示滤镜效果)

Camera Api 2 和 OPEN GL ES 使用&#xff08;显示滤镜效果&#xff09; 相机预览和open GL 使用实现滤镜效果 代码 https://github.com/loggerBill/camera 相机预览 1.相机动态权限 <uses-permission android:name"android.permission.CAMERA" /><uses-f…

CAS教务系统单点登录分析

1. 核心 URL 结构 GET /authserver/login?servicehttp%3A%2F%2F192.168.254.188%2Fjsxsd%2Fframework%2FxsMainV.htmlx认证服务器&#xff1a;authserver.XXXX.edu.cn&#xff08;典型 CAS 系统&#xff09;目标服务&#xff1a;http://192.168.254.188/jsxsd/framework/xsMa…

利用云雾自动化在智能无人水面航行器中实现自主碰撞检测和分类

大家觉得有读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 工业信息物理系统 &#xff08;ICPS&#xff09; 技术是推动海上自主化的基础&#xff0c;尤其是对于无人水面航行器 &#xff08;USV&#xff09;。然而&#xff0c;船上计算限制和通信延迟…

AI+物联网:从万物互联到万物智联

AI物联网&#xff1a;从万物互联到万物智联的范式革命 当农田传感器自主决策灌溉时机&#xff0c;当咖啡机根据睡眠数据调节浓度&#xff0c;当城市交通系统在拥堵发生前主动干预——这些场景不再是科幻想象&#xff0c;而是2025年AIoT&#xff08;人工智能物联网&#xff09;…

Python爬虫实战:研究Levenshtein库相关技术

1. 引言 1.1 研究背景与意义 随着电子商务的快速发展,网络上积累了海量的产品数据。这些数据来自不同的电商平台、卖家,存在着产品名称不统一、规格描述差异大等问题,给数据整合、价格比较、竞品分析等应用带来了极大挑战。传统的精确匹配方法无法处理产品名称中的拼写错误…

MySQL 总是差八个小时,如何破?

MySQL 总是差八个小时&#xff0c;如何破&#xff1f;_mysql__江南一点雨-Byzer 白泽 解决 SpringBoot 应用中 MySQL 时区配置引起的时间不一致问题 - 路有所思 - 博客园