const thumbs = reactive([null, null, null]);
v-for="(swiper, i) in thumbs" @swiper="thumbs[i]=$event" :thumbs="{ swiper }"
transformAssetUrls
. Однако открыв доки я вижу там: Converts src to provider optimized URLs
import img from '~/assets/images/header.jpg'
? import Wordpress from '../assets/wordpress-logotype-wmark.png';
import Bitrix from '@/assets/logotip/1c_bitrix_logo.svg.png';
const brandImgs = {
'1C Bitrix': Bitrix,
Wordpress,
};
/public
и указывать не относительные пути в рамках проекта, а абсолютные от корня:const brandImgs = {
'1C Bitrix': '/logotip/1c_bitrix_logo.svg.png',
'Wordpress': '/logotip/wordpress-logotype-wmark.png',
};
reactive
/ref
объекта, чтоб получить эрзац-стор, тупо: // где-нибудь
export const basket = reactive([]); // или ref([]) по вкусу.
// везде где надо
import { basket } from './...'
store
если можно делать так? Потому что сторы учитывают работу в режиме SSR, а также позволяют удобную отладку в случае множества запутанных связей. store
- только pinia
, а не vuex
. Не вижу причин его не использовать.EventBus
: с одной стороны новичку её использовать категорически не рекомендуется, т.к. работа со store
куда удобнее, очевиднее и надёжнее. Однако и совсем отрицать её использование тоже не следует, шина отлично подходит для случаев когда мы имеем дело именно с событиями, а не изменением состояния. Т.е. послать какой-нить notification или лог - самое оно, использовать для изменения basket
, как в вашем случае - нет. const myDirective = {
created(el, binding, vnode, prevVnode) {
otherDirective?.created(el, binding, vnode, prevVnode);
...
},
beforeMount(el, binding, vnode, prevVnode) {
otherDirective?.beforeMount(el, binding, vnode, prevVnode);
...
},
....
}
import { useSlots, withDirectives, resolveDirective } from 'vue'
export default {
setup() {
const htmlDirective = {
mounted(el, html) {
el.innerHTML = html.value
}
}
const colorDirective = {
mounted(el, color) {
el.style.color = color.value
}
}
// const someDirective = resolveDirective('some-directive');
const slots = useSlots();
return () => withDirectives(slots.default()[0], [
[htmlDirective, 'some html'],
[colorDirective, 'red'],
])
}
}
<wrapper><some-compnent /></wrapper>
scoped
стилей: переданный внутрь класс не будет работать сам по себе, т.к. привязан к scope
родительского компонента, придётся использовать псвевдоселектор :deep()
, а это уже чревато коллизиями.item
, где одновременно были бы равны item.product.article
, item.size
и item.warehouse.id
, т.к. только в таком случае ветка уйдёт в нужную вам сторону. Если логика предполагалась какой-то другой - уточняйте.reactive
вместо ref
, код чище и приятней будет. @side-emit="(side, id) => {
this.players[id].side = side;
...
}"
this
, а внутри шаблона он не нужен, т.к. либо раскрывается неявно автоматически, либо, в случае со <script setup>
, не используется вовсе. Следует запомнить: никакого this
в шаблонах. @side-emit="(side, id) => {
players[id].side = side;
...
}"
this
в данном конкретном случае. Просто так совпало.@side-emit="someValue = $event ? 1 : 2"
, а что-то сложнее просто выносить в метод компонента\composition функцию: @side-emit="onSlideEmit"
. MediaRecorder
, сам аудио-поток(stream)
у вас всё ещё захвачен и вы можете слушать его дальше. function stopStream(stream) {
stream.getTracks().forEach(
(track) => track.readyState === 'live' && track.stop()
);
}
window.dataLayer
уже существует.window.dataLayer.push
переопределён или window.dataLayer
является реактивным (vue?) массивом и отслеживает добавления.(что суть одно)push
вызывается некая функция, которая без всяких проверок на то что значение не пустое делает условно так: puhedValue.ecommerce.hasOwnProperty(...)
на чём благополучно и падает.ecommerce: null
, эта хрень ожидает, что ecommerce
будет объектом и никак иначе.null
, что тоже вариант). Что я делаю не так?
notify
которая вернёт инстанс со всем управлением и импортируйте где надо.bus.global.emit("notify", {
msg: "New SMS code Requested, Success",
timer: 30,
uid: '<заданный рукамиидентификатор>'
});
notification.get(uid)
, специально для "сложных" случаев. Но это такое себе.