function findInString(OUTPUT_HTML, before, after) {
let start = OUTPUT_HTML.indexOf(before);
if (start === -1)
return '';
start += before.length;
const end = OUTPUT_HTML.indexOf(',', start);
if (end === -1)
return '';
return OUTPUT_HTML.slice(start, end);
}
const productCost = +findInString(OUTPUT_HTML, '"productCost":', ',');const PeoplePageWithErrorApi = WithErrorApi(PeoplePage)
<PeoplePageWithErrorApi foo="bar">
// props = {foo: bar}
// внутри PeoplePage props {
// foo: 'bar',
// setErrorApi: setErrorApi из WithErrorApi,
// setLoader: setLoader из WithErrorApi,
// isLoading: isLoading из WithErrorApi
//} Vue использует webpack, а webpack использует для запросов конкретные пути, которые ты указываешь при билде.publicPatch указывает на соответствующий сайт.webpack позволяет менять публичный путь динамически, присваивая его переменной __webpack_public_path__. Остаётся только при старте приложения получить путь к скрипту, например из document.currentScript, выделить из него нужный путь и присвоить его. /api откуда надо, а только потом заворачивал все запросы на index.html.vue-cli используется webpack dev server, и там есть proxy, через который вы можете направить запросы с /api на свои боевые или локальные сервера. const dateTimeLocal = reactive({
day: ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09"],
hour: ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09"],
minute: ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09"],
second: ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09"],
});computedсвойства в vue пересчитываются когда меняются их реактивные зависимости, которые участвовали в предыдущих вычислениях
computed к this.value - теперь он смотрит за изменениями this.value. Твоё же computed ни к чему не обращается, оно просто возвращает функцию, её содержимое и вызовы к computed не относятся.computed: {
validatedClass() {
return (input) => {
return {
'uk-form-success': this.wasValidated && !this.errors[input],
'uk-form-danger': this.wasValidated && this.errors[input],
}
}
}
},function someRandomFunction(input) => {
return {
'uk-form-success': this.wasValidated && !this.errors[input],
'uk-form-danger': this.wasValidated && this.errors[input],
}
}
computed: {
validatedClass() {
return someFunction.bind(this);
}
},computed будет обновлён только когда Vue пошлёт. В идеале, на самом деле, никогда.this.errors = {}.this.errors.email = [] - не реактивны.this.$set(this.errors, 'email', []) либо, что лучше, заранее:this.errors = {
email: '',
// ...
}this.$children - очень очень очень плохо. Просто используй props. Такая возможность наличествует только для крайне сложных случаев в компонентах библиотек. Точно не для твоего. bootstrap во втором только modal. Однако на деле нет никакой разницы, потому что все популярные системы сборки умеют в tree-shaking, т.е. оставляют в бандле только то, что используется. <script>, то любое упоминание </script> этот тег собственно закрывает, от чего твой код может поломаться. Решение писать по-другому('</sc'+'ript>', '<\u002fscript>' и т.п.) или вынести в файл.import(), будет лежать в отдельном js файле, который подгрузится только когда попросят.