通过自定义指令的方式来实现在Vue中实现语法高亮
问题
highlight.js如果在Vue中使用,这个问题一直困扰着我,而highlight.js的使用说明太过于简单,完全不知道怎么使用。1234// 完全是一脸懵B的,而且不管经过怎么使用都无法实现代码高亮的效果<link rel="stylesheet" href="/path/to/styles/default.css"><script src="/path/to/highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script>
在highlight.js
的Usage有这么一个方法我觉得我使用得到的12345$(document).ready(function() { $('pre code').each(function(i, block) { hljs.highlightBlock(block); });});
实现
安装
|
|
编码
Vue自定义指令 文档123456789// Vue-cli生成的工程文件的src/main.jsimport hljs from 'highlight.js'import 'highlight.js/styles/googlecode.css' //样式文件Vue.directive('highlight',function (el) { let blocks = el.querySelectorAll('pre code'); blocks.forEach((block)=>{ hljs.highlightBlock(block) })})
使用
|
|
到这里我们就打工告成了。
封装成插件
编写插件
|
|
使用插件
|
|