const queryKey: AuthMessagesKeys = queryObject.message
function isAuthMessagesKey(str: string): str is AuthMessagesKeys {
return ['login', 'logout', 'session'].includes(str);
}
Vue
появились дополнительные свойства типа $route
. Надо отдельно подключать декларации вручную, либо следовать инструкции выше. export default {
server: {
host: '0.0.0.0'
}
}
route params
- плохо (но возможно push({name: <name>, params: {...}})
). Если кто-то откроет страничку напрямую - он ничего не увидит.axios.interceptors.request.use(async config => {
const token = await getToken(); // тут либо отдаём живой токен сразу, либо получаем новый
config.headers.Authorization = 'Bearer ' + token;
return config;
});
Ошибок ждать не надо.<template>
<div>
<div id="sp-7O1Ya5yaBAGp"></div>
</div>
</template>
<script>
export default {
mounted() {
(function(w, n) {
w[n] = w[n] || [];
w[n].push({
spId: "7O1Ya5yaBAGp",
blockId: "sp-7O1Ya5yaBAGp"
});
})(window, "superProjectRender");
},
head: {
script: [
{
src: "https://superproject.com/sp.js"
}
]
}
};
</script>
{
props: route => route.path.split('/').reduce((props, keyvalue) => {
if(keyvalue = keyvalue.match(/^(.*?)=(.*)$/)) {
props[keyvalue[1]] = keyvalue[2];
}
return props;
}, {}),
path: '/product/*',
component: Foo
}
Если порядок и вид параметров важен, можно использовать вместо * что-то вроде: path: '/product/(country=[^/]+/)?(status=[^/]+/)?', // ...
, чисто как ограничение.