Я изо всех сил пытался использовать Vue и MathLive для обработки набора случайных чисел и их квадратов.Функция программы - генерировать случайное целое число от 1 до 35, вычислять квадрат и набирать его с помощью MathLive.Есть две кнопки, которые добавляют одну к целому числу или создают другую случайную.У меня нет проблем с набором начального значения, но когда я создаю другое целое число или добавляю 1 на страницу, он никогда не набирает заново.Я пытаюсь реализовать эту программу как компонент в Vue.Вот мой MWE (только компонент):
<template lang="html">
<div class="problem">
<p id="math">$${{num}}^2 = {{square()}}$$</p>
<button @click="addOne">Add One</button>
<button @click="randomInt">Random Number</button>
</div>
</template>
<script>
import math from 'mathjs'
import MathLive from 'mathlive'
export default {
name: 'Problem',
data: function () {
return {
num: math.randomInt(1,35)
}
},
watch: {
num: function () {
console.log("Data changed");
// this.renderMath();
}
},
created: function () {
console.log("Hello This is created!");
this.renderMath();
},
beforeMount: function () {
console.log("This is beforeMount");
},
mounted: function () {
console.log("This is mounted!");
},
beforeUpdate: function () {
console.log("This is beforeUpdate");
this.renderMath();
},
methods: {
addOne: function() {
this.num++
},
randomInt: function () {
this.num = math.randomInt(1,35)
},
square: function () {
return this.num**2
},
renderMath: function (event) {
this.$nextTick(function(){
MathLive.renderMathInElement("math");
})
}
}
}
</script>
<style lang="css" scoped>
@import url("../../node_modules/mathlive/dist/mathlive.core.css");
@import url("../../node_modules/mathlive/dist/mathlive.css");
p {
color: white;
}
</style>
Редактировать: Чтобы уточнить, когда я загружаю страницу, начальное значение правильно набирается с использованием MathLive, как показано ниже: Затем после того, как я нажму кнопку Добавить один или Случайное число , программа должна сгенерировать новое значение, вычислить его квадрат и обновить это значение на экране, как показано ниже: