恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

vue3+prism封装组件:多语言自动高亮代码块,支持一键复制

  • 首页
  • 资讯中心
  • /
  • vue3+prism封装组件:多语言自动高亮代码块,支持一键复制

相关资讯

AI赋能游戏创作:基于ChatGPT 5.4的小游戏智能设计与开发全解析|TaoToken统一Key接入实战 2026/9/25 20:00:58
英伟达:多模态合成数据生成框架 2026/9/25 20:00:58
AI Agent Harness Engineering 盈利模式设计:TaoToken 统一 Key 下的订阅制、按次付费与定制化服务 2026/9/25 20:00:58

最新资讯

多智能体协同:从单模型到工程级AI研发组织范式
2026中小企业ERP选型指南:4个维度12个问题,选型前必须问清楚
LangChain Tools:工具集成与自定义开发
持续打造“可预测、可依赖、可互惠”的生存策略:从信任本能到信任工程
老板怎么看进销存数据?2026年简道云进销存6张核心报表与经营看板指南
【含视频】官方WorkBuddy应用师认证教程03 职 场 实 战 应 用

今日推荐

AI元人文:从工具使用到思维重构的深度探索
Python+CNN车牌识别实战:从数据预处理到模型训练与部署
Vim基础操作全攻略:保存退出、模式切换与高频命令实战

本周热门

BrewUI:给Homebrew套上图形界面,让macOS软件包管理更简单
BrewUI:让Homebrew包管理变得可视化与高效
公式与文本对齐全攻略:从Word到LaTeX的实用技巧

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

vue3+prism封装组件:多语言自动高亮代码块,支持一键复制

发布时间:2026/9/25 20:00:58
vue3+prism封装组件:多语言自动高亮代码块,支持一键复制 • Prism官网https://prismjs.com/• vue-prism-component主页https://github.com/egoist/vue-prism-component1、安装 prismjs、vue-prism-componentyarnaddprismjs vue-prism-component2、封装组件!-- src/components/CodeBlock.vue --templatedivclasscode_blockdivclasscode_header!-- 语言 --spanclasscode_lang{{ lang }}/span!-- 复制按钮 --el-buttontypeprimarylinkclickcopyClipboard:disabled!codeCopyDocument/复制/el-button/div!-- 代码 --prism:languagelangline-numbersclasscode_content{{ code }}/prism/div/templatescriptimportprismjsimportPrismfromvue-prism-component//引入默认主题importprismjs/themes/prism.css//按需引入语言模块importprismjs/components/prism-bashimportprismjs/components/prism-markupexportdefault{components:{Prism,},props:{lang:String,//代码语言必填code:String,//代码内容必填},data(){return{}},methods:{//复制到剪贴板asynccopyClipboard(){try{awaitnavigator.clipboard.writeText(this.code);this.$message.success(已复制到剪贴板);}catch(err){// 降级方案兼容旧浏览器或权限受限环境consttextareadocument.createElement(textarea);textarea.valuethis.code;textarea.style.positionfixed;textarea.style.opacity0;document.body.appendChild(textarea);textarea.select();constsuccessdocument.execCommand(copy);document.body.removeChild(textarea);if(success){this.$message.success(已复制到剪贴板);}else{this.$message.warning(复制失败请手动选择并复制);}}},},}/scriptstylelangscss.code_block{width:100%;.code_header{background-color:#F5F6F9;height:32px;line-height:32px;padding:0 12px;border-radius:.3rem .3rem 0 0;color:#A8ABB2;width:calc(100% - 24px);display:flex;align-items:center;justify-content:space-between;}.code_content{margin:0;border-radius:0 0 .3rem .3rem;background-color:#FAFAFC;}}/style• 更多主题风格https://github.com/PrismJS/prism-themes#how-to-use-a-theme• 支持高亮的语言模块https://prismjs.com/#supported-languages• 关于ElementPlus和SCSS请参考vue3elementplussass/scss安装配置教程使用svg图标、引入外部字体、定义变量模块、修改组件样式、一键切换主题等3、全局注册组件也可在应用时按需引入/* src/main.js */import{createApp}fromvue;importAppfrom./App.vue;//导入组件importCodeBlockfrom./components/CodeBlock.vue;//import MoreComponent from ./components/MoreComponent.vue;constappcreateApp(App);//注册组件app.component(CodeBlock,CodeBlock);//app.component(MoreComponent, MoreComponent)app.mount(#app)4、应用组件!-- Example.vue --template!-- 全局注册后可直接使用 CodeBlock / --!-- 单行代码示例 --CodeBlocklangbash:codesingleLine/!-- 多行代码示例 --CodeBlocklangxml:codemultipleLines//templatescript//或按需引入组件仅此页面生效importCodeBlockfrom/components/CodeBlock.vueexportdefault{components:{CodeBlock,//注册组件仅此页面生效},data(){return{singleLine:yarn add prismjs vue-prism-component,}},computed:{multipleLines(){return?xml version1.0 encodingUTF-8? note toGeorge/to fromJohn/from headingReminder/heading bodyDont forget the meeting!/body /note},},}/script

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号