Vue пытается визуализировать элементы настолько эффективно, насколько это возможно, часто повторно используя их вместо рендеринга с нуля. Однако это не всегда желательно, поэтому Vue предлагает вам способ сказать: «Эти два элемента совершенно разные - не используйте их повторно». Добавьте ключевой атрибут с уникальными значениями:
<i class="far fa-star" title="Unstar Ranking" key="unstared"/>
...
<i class="fas fa-star" title="Star Ranking" key="stared"/>
Теперь эти элементы i будут отображаться с нуля при каждом переключении.
Вы также можете обновить классы с помощью привязки классов:
<span v-if="isStarred" v-bind:class="{starred: isStarred, unstarred: !isStarred}" class="icon config-icon clickable-text" @click="toggleStar">
<i v-bind:class="{far: isStarred, fas: !isStarred}" class="fa-star" v-bind:title="title"/>
</span>