Показать сообщение отдельно
  #11 (permalink)  
Старый 20.07.2022, 07:14
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

рони,
1. В Vue 3 по другому инициация происходит.
2. Чтоб работала компиляция шаблонов на лету надо таки vue.global.min.js, runtime - это если шаблоны уже скомилены, моя вина.
3. $set в Vue 3, как я говорил, не нужен, потому его там и нет.


Да и вообще Vue 3 - это больше React 2.0 Remasterd. =\
Но совместимость кой-какая сохранена:
<!DOCTYPE html>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .item {
            border: 1px solid #008000;
            margin: 4px;
        }

        .active {
            border: 1px solid red;
        }
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.37/vue.global.min.js" ></script>
</head>

<body>
    <div id="app">
        <div v-for="{id} in itemsData"  :class="[{ active: itemsFlag[id] },'item']">
            <button @click="itemsFlag[id] = !itemsFlag[id]">Клик</button>
        </div>
    </div>
    <script>
        const app = Vue.createApp({
            data() {
                return {
                    itemsData: [{
                        id: "a"
                    }, {
                        id: "b"
                    }, {
                        id: "c"
                    }],
                   itemsFlag : {}
                }
            }
        });
        app.mount("#app")
    </script>
</body>

</html>

Правда никто её не использует в либах второго порядка, увы, так что бестолку, все перешли на реакто-подобную мерзость.
__________________
29375, 35
Ответить с цитированием