VUE JS: Onclick не увеличил оценку должным образом

Привет, я работаю над простой игрой, в которой, если пользователь нажимает кнопку, счет будет плюс, то есть 1.

new Vue({
  el: '#MyApp',
  data: {
    score: '10',
  },
  methods: {
    ScoreIncre: function(incre) {
      this.score += incre;
    }
  }
});
<script src = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id = "MyApp">
  <p>My Score is {{score}</p>
  <button v-on:click = "ScoreIncre(1)">Increase my Score</button>
</div>

После того, как кнопка нажата, вместо добавления очков +1 отображается результат «Моя оценка 101». Какова возможная причина этого? Я попытался разобрать инкремент на int, но результат был таким же.

'10' - строка.
apple apple 30.03.2021 13:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
36
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Поскольку оценка равна «10», поэтому это строка, а не число, поэтому, когда вы увеличиваете «10» + 1, это «101», а не 11, вы должны изменить «10» на 10.

Спасибо большое, дружище, все работает :)

Muhammad Khan 31.03.2021 14:57

'10' - строка. Тебе нужно

data: {
    score: 10,
}

Спасибо большое, дружище, все работает :)

Muhammad Khan 31.03.2021 14:56

'10' в вашем коде - это строка, а не число. Вот почему вы не можете увеличить его. Объявите это числом или без кавычек, например: 10

Спасибо большое, дружище, все работает :)

Muhammad Khan 31.03.2021 14:56

Вам нужно сохранить 10 как число, а не String, кроме того, в вашем шаблоне отсутствует фигурная скобка на конце }.

Проверить фрагмент:

new Vue({
  el: '#MyApp',
  data: {
    score: 10,
  },
  methods: {
    ScoreIncre: function(incre) {
      this.score += incre;
    }
  }
});
<script src = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id = "MyApp">
  <p>My Score is {{score}}</p>
  <button v-on:click = "ScoreIncre(1)">Increase my Score</button>
</div>

Спасибо большое, дружище, все работает :)

Muhammad Khan 31.03.2021 14:56

Другие вопросы по теме