rfc在.js文件中不生效是因为插件仅在.jsx/.tsx或javascript react语言模式下激活,需点击右下角语言标识手动切换为javascript react,或配置"files.associations": {"*.js": "javascriptreact"}。

装了 ES7+ React/Redux/React-Native snippets 却按 Tab 没反应?大概率不是插件没装好,而是语言模式没对上,或者触发前缀用错了。
为什么 rfc 在 .js 文件里不生效
这个插件默认只在 .jsx 和 .tsx 文件中激活——它认的是语言模式(language mode),不是文件后缀。哪怕你开了 component.js,右下角显示的是 JavaScript 而非 JavaScript React,rfc 就不会弹。
- 点击 VS Code 右下角语言标识(如 “JavaScript”),选
JavaScript React;快捷键是Ctrl+K M(Win/Linux)或Cmd+K M(macOS) - 如果项目大量用
.js写 React,建议在工作区设置里加一条:"files.associations": {"*.js": "javascriptreact"} -
rafce和rfc都可用,但rafce会生成箭头函数 + 默认导出,rfc是普通函数声明,别混用场景
useEffect 展开后依赖数组为空,怎么自动填 [] 或 [deps]
原插件的 useE 或 useEffect 片段默认只生成空数组 [],不自动推导依赖。它没法读 AST,所以不会帮你分析用了哪些变量。
- 想让光标默认停在
[]里:片段 body 中写成"useEffect(() => {\n $0\n}, []);",$0就是最终光标位置 - 想留个占位符方便补依赖:用
"useEffect(() => {\n $0\n}, [$1]);",按Tab后可直接输入变量名 - 别改插件自带 snippet 文件——重启就还原。要定制,走用户片段覆盖:
Preferences: Configure User Snippets→ 选javascriptreact.json,加同名prefix
自定义 rfc 加 useMemo 或 PropTypes 怎么不被插件升级冲掉
插件更新时会覆盖它自己发布的 snippet,但不会动你放在 javascriptreact.json 或 typescriptreact.json 里的用户片段。VS Code 总是优先匹配用户定义的同名 prefix。
- 打开命令面板,运行
Preferences: Configure User Snippets,选typescriptreact.json(TypeScript 项目)或javascriptreact.json(JS 项目) - 新增一个 key,比如
"rfc-with-useMemo",prefix设为"rfc"——这样你输rfc+Tab就会命中你自己的版本 - body 里用
$TM_FILENAME_BASE自动取文件名,用${1:props}设默认参数名,避免手输错 - 注意:不要删插件自带的
rfc,留着它,只靠 prefix 优先级覆盖即可
最易忽略的一点:插件片段和用户片段共存时,VS Code 不报错、不提示冲突,只是静默采用第一个匹配的——所以 prefix 重名 + 文件语言匹配 = 你写的一定生效,但得确认你配的是对的语言文件。











