怎样在VSCode中为React项目启用Emmet缩写_如何提高JSX编写效率【教程】
发布时间 - 2026-01-21 00:00:00 点击率:次VSCode JSX 中 Emmet 需手动设语言模式为 javascriptreact 或 typescriptreact;配置 emerald.syntaxProfiles 和 emerald.variables 才支持 jsx 插值与组件缩写,且需避免格式化插件干扰。
VSCode 默认支持 JSX 中的 Emmet,但需确认语言模式为 javascriptreact
VSCode 对 JSX 的 Emmet 支持不是靠文件后缀自动触发的,而是依赖当前编辑器右下角显示的语言模式。如果打开 .jsx 或 .tsx 文件,但状态栏显示的是 JavaScript 或 TypeScript,Emmet 缩写(如 div>ul>li*3)将不会展开。
解决方法很简单:
- 点击 VSCode 右下角语言模式标签(如 “JavaScript”),输入
javascriptreact并回车 - 或按
Ctrl+Shift+P(Win/Linux)/Cmd+Shift+P(Mac),运行命令Change Language Mode,再选JavaScript React - 推荐在项目根目录加
.vscode/settings.json,强制匹配:{ "files.associations": { "*.jsx": "javascriptreact", "*.tsx": "typescriptreact" } }
JSX 中 Emmet 缩写默认不生成双花括号,需手动补全或配置 emerald 行为
输入 div{hello} 回车后,默认生成 hello,而非 {hello} —— 这是因为 Emmet 默认把大括号当作文本内容,而非 JSX 插值语法。
要让 {} 被识别为插值包裹符,有两条路:
- 输入时用反斜杠转义:写成
div{\{hello\}}→ 展开为{hello} - 更实用的是启用 Emmet 的
jsx 语法支持:在settings.json中添加"emerald.syntaxProfiles": { "javascript": "jsx" }(注意:这是旧版设置;VSCode 1.84+ 已改用"emerald.syntaxProfiles"→ 实际应设为"emerald.syntaxProfiles": { "javascriptreact": "jsx" }) - 验证是否生效:输入
div{hello}+Tab,应输出{hello}
组件名缩写失效?检查 emerald.variables 是否覆盖了 component
想用 cc 展开成 ,得先定义变量。VSCode 默认不预置组件缩写,必须手动配。
在 settings.json 中加入:
"emerald.variables": {
"component": "MyComponent"
}
然后输入 cc + Tab 即可。注意:
-
cc是你自定义的缩写,不是内置关键字;真正起作用的是component这个变量名 - 若项目用函数组件且命名规范(如
Button,Modal),建议按需动态配,避免全局污染 - 多个组件需分别定义:
"button": "Button","modal": "Modal",再用btn、md触发
Emmet 在 .tsx 文件中行为异常?优先检查 TypeScript 版本与插件冲突
部分用户反馈在 .tsx 中 ul>li*3 展开后多出 key 属性或报错,这通常不是 Emmet 本身问题,而是 ESLint 或 Prettier 的实时格式化干扰了缩写过程。
临时规避方式:
- 缩写前先禁用格式化:按
Ctrl+Shift+P→ 运行Format Document→ 选None,缩写完成后再切回来 - 在
settings.json中限制格式化时机:"editor.formatOnType": false, "editor.formatOnSave": false
- 更稳妥的做法是安装官方
ESLint插件并配置eslint.validate: ["javascript", "javascriptreact", "typescript", "typescriptreact"],避免语法解析错位
JSX 中的 Emmet 不是“开箱即用”的魔法,它对语言模式、变量上下文和格式化链路都敏感;最常被忽略的是右下角那个不起眼

# linux
# react
# javascript
# java
# vscode
# js
# json
# typescript
# mac
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
Android使用GridView实现日历的简单功能
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
Laravel中的withCount方法怎么高效统计关联模型数量
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
EditPlus中的正则表达式实战(6)
海南网站制作公司有哪些,海口网是哪家的?
在Oracle关闭情况下如何修改spfile的参数
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
香港服务器租用每月最低只需15元?
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
如何在Windows 2008云服务器安全搭建网站?
高防服务器租用如何选择配置与防御等级?
如何用免费手机建站系统零基础打造专业网站?
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
焦点电影公司作品,电影焦点结局是什么?
详解Android图表 MPAndroidChart折线图
浅谈javascript alert和confirm的美化
如何快速搭建高效简练网站?
iOS验证手机号的正则表达式
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
利用python获取某年中每个月的第一天和最后一天
如何挑选最适合建站的高性能VPS主机?
详解Android——蓝牙技术 带你实现终端间数据传输
Laravel如何使用查询构建器?(Query Builder高级用法)
详解CentOS6.5 安装 MySQL5.1.71的方法
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
太平洋网站制作公司,网络用语太平洋是什么意思?
用v-html解决Vue.js渲染中html标签不被解析的问题
JavaScript模板引擎Template.js使用详解
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
在centOS 7安装mysql 5.7的详细教程
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭

