Я создаю приложение vue и хочу использовать MathJax для визуализации уравнений.Я могу получить уравнения для рендеринга, когда компонент смонтирован, но я не могу сделать так, чтобы уравнения перерисовывались позже.
Я сделал пример песочницы с кодом , чтобы продемонстрировать это.Попробуйте изменить уравнение латекса на входе, и ничего не изменится, даже если консоль показывает, что наблюдатель работает.
Может кто-нибудь объяснить мне, что я делаю неправильно?
Я добавил mathjax черезcdn в главе index.html со следующим конфигом
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'],['\\(','\\)']],
}
});
</script>
<script type="text/javascript" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_CHTML"></script>
и вот код в моем компоненте приложения
<template>
<div id="app">
<input v-model="latex"/><br>
<div>{{latex}}</div>
</div>
</template>
<script>
export default {
name: "App",
data() {
return {
latex: '$$\\frac{a}{b}$$'
}
},
methods: {
reRender() {
if(window.MathJax) {
console.log('rendering mathjax');
window.MathJax.Hub.Queue(["Typeset", window.MathJax.Hub], () => console.log('done'));
}
}
},
mounted() {
this.reRender();
},
watch: {
latex: function() {
console.log('data changed')
this.reRender();
}
}
};
</script>