在这里有个mathjax的插件,可以将dom中的数学公式展示。

第一步安装mathjax

npm install mathjax

安装完之后,你会在index.html中发现,已经引用了js文件,并且有相关配置

    <script type="text/javascript"
src="http://api.xkw.com/mathjax/MathJax.js?config=TeX-MML-AM_CHTML"></script> <script type="text/x-mathjax-config">
MathJax.Hub.Config({
jax: ["input/MathML","output/SVG"],
extensions: ["mml2jax.js","MathEvents.js"]
}); </script>

并且在utils中多了一个文件MathJax.js

MathJax文件内容

export default {
MathConfig () {
if (window.MathJax) {
console.log('rendering mathjax')
window.MathJax.Hub.Queue(['Typeset', window.MathJax.Hub], () => console.log('done'))
}
}
}

再来说一个npm通用的问题,怎么配置,怎么导入

通过在网上半天查询,终于找到

将MathJax.js的配置文件改为如下

let isMathjaxConfig = false// 用于标识是否配置
const initMathjaxConfig = () => {
if (!window.MathJax) {
return
}
window.MathJax.Hub.Config({
showProcessingMessages: false, // 关闭js加载过程信息
messageStyle: 'none', // 不显示信息
jax: ['input/TeX', 'output/HTML-CSS'],
tex2jax: {
inlineMath: [['$', '$'], ['\\(', '\\)']], // 行内公式选择符
displayMath: [['$$', '$$'], ['\\[', '\\]']], // 段内公式选择符
skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code', 'a'] // 避开某些标签
},
'HTML-CSS': {
availableFonts: ['STIX', 'TeX'], // 可选字体
showMathMenu: false // 关闭右击菜单显示
}
})
isMathjaxConfig = true // 配置完成,改为true
} const MathQueue = function (elementId) {
if (!window.MathJax) {
return
}
window.MathJax.Hub.Queue(['Typeset', window.MathJax.Hub, document.getElementById('app')])
} export default {
isMathjaxConfig,
initMathjaxConfig,
MathQueue
}

这里做一个简单说明,Hub.Config中是做一些基本配置,再通过调用Hub.Queue这个方法对dom树进行渲染。

基本配置搞定,然后将文件导入到main.js中

import MathJax from './utils/MathJax'
Vue.prototype.MathJax = MathJax

接下来就可以使用了

  watch: {
list: function () {
this.$nextTick(function () {
if (this.MathJax.isMathjaxConfig) { // 判断是否初始配置,若无则配置。
this.MathJax.initMathjaxConfig()
}
this.MathJax.MathQueue()// 传入组件id,让组件被MathJax渲染
})
}
}

监听list是否发生变化,发生变化之后,就在dom渲染完之后,生成试题的正确展示形式

vue项目中数学公式的展示的更多相关文章

  1. vue项目中要实现展示markdown文件[转载]

    转载 版权声明:本文为CSDN博主「齐天二圣」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/nihaoa5 ...

  2. vue项目中遇到的一些问题

    或访问:https://github.com/littleHiuman/experiences-about-vue  欢迎补充! vuex 状态 vue-cli 命令行 vue vue vue-rou ...

  3. dom元素的tabindex属性介绍及在vue项目中的应用

    dom元素的tabindex属性介绍及在vue项目中的应用 tabindex属性作用 让普通dom元素变为可聚焦的元素 让普通dom元素可以参与顺序键盘导航(通常使用Tab键,因此得名). tabin ...

  4. vue项目中使用组件化开发

    最近在使用vue-cli结合webpack打包工具开发一个后台管理系统,使用vue难免需要运用组件化思想,而这也正是vue的一大特点. 在之前做的vue项目中,稍微有一点组件化的思想,可能是对组件化不 ...

  5. vue项目中使用bpmn-节点篇

    前情提要 根据之前的操作,我们可以创建.导入.导出流程图,并对其进预览.通过此篇可以学到: 为节点添加点击.鼠标悬浮等事件 获取流程图内所有指定类型的节点 通过外部更新节点名字 获取节点实例的两种方法 ...

  6. vue项目中使用bpmn-自定义platter

    前情提要 经过前四篇的学习,我们能够实现bpmn基本绘图.预览.为节点加事件加颜色等效果,这一篇我们来说,如何自定义左侧工具栏(platter),首先看一下自定义前后效果图对比: 我们本次要实现的目标 ...

  7. vue项目中使用bpmn-流程图xml文件中节点属性转json结构

    内容概述 本系列“vue项目中使用bpmn-xxxx”分为七篇,均为自己使用过程中用到的实例,手工原创,目前陆续更新中.主要包括vue项目中bpmn使用实例.应用技巧.基本知识点总结和需要注意事项,具 ...

  8. vue 项目中实用的小技巧

    # 在Vue 项目中引入Bootstrap 有时在vue项目中会根据需求引入Bootstrap,而Bootstrap又是依赖于jQuery的,在使用npm按照时,可能会出现一系列的错误 1.安装jQu ...

  9. 如何在VUE项目中添加ESLint

    如何在VUE项目中添加ESLint 1. 首先在项目的根目录下 新建 .eslintrc.js文件,其配置规则可以如下:(自己小整理了一份),所有的代码如下: // https://eslint.or ...

随机推荐

  1. MongoDB学习【三】—MongoDB数据库增删改查

    一.数据库的增删查 # 增加 use db # 有则切换,无则新 增 # 查看 show dbs # 查看所有数据库 db # 查看当前库 # 删除 db.dropDatabase() # 不会就用h ...

  2. Week3 - 397. Integer Replacement

    Week3 - 397. Integer Replacement 397.Integer Replacement - Medium Given a positive integer n and you ...

  3. base64编解码的另外几个版本

    #include "crypto/encode/base64.h" static const std::string base64_chars = "ABCDEFGHIJ ...

  4. springboot An incompatible version [1.1.32] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]

    1.错误 An incompatible version [1.1.32] of the APR based Apache Tomcat Native library is installed, wh ...

  5. 如何给vue 日期控件赋值

    项目中需要用到日期时间插件,尝试用bootstrap.element的时间插件都各有各的报错,对于一个菜鸟来说真的是很痛苦啊.终于,最后用了layDate实现了需要的功能 最终效果: 使用步骤: 1. ...

  6. OuterXml和InnerXml

    例如 <bkk> <rp fe="few" > <fe>fff</fe> </rp> </bkk> 对于fe ...

  7. go工具链

    1 编辑器 goland 2 GOPATH GOPATH是go的一个环境变量,它以绝对路径提供go的工作目录. go工程的源码存放在${GOPATH}/src目录下,go编译过程中生成的中间文件存放在 ...

  8. [19/05/26-星期日] JavaScript_ 基本语法_运算符

    一.概念 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  9. JAVA总结--dubbo与zookeeper

    读累了就看看实操https://www.cnblogs.com/huasky/p/10214642.html 一.SOA 概念:SOA:Service-Oriented Architecture,面向 ...

  10. 剑指Offer编程题(Java实现)——替换空格

    题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 解题思路1 在字符串尾部填充任 ...