Я нашел способ передать что-то из промежуточного программного обеспечения в хранилище, которое можно использовать внутри функции макета. Вот базовый c пример, который я собрал.
middleware/get-layout.js
Я имитирую асинхронный вызов c здесь, также может быть результатом ax ios .post (), например
export default async (ctx) => {
return new Promise((resolve, reject) => {
// you can also access ctx.params here
ctx.store.commit('setLayout', 'new');
resolve();
});
}
store/index.js
здесь нет ничего сумасшедшего
export const state = () => ({
layout: ''
})
export const mutations = {
setLayout(state, layout) {
state.layout = layout;
}
}
Промежуточное программное обеспечение может быть зарегистрировано глобально для каждого маршрута в nuxt.config.js
или только для страниц, где вам нужен этот лог c.
Наконец, используя его в компоненте страницы * свойство 1014 *:
layout(ctx) {
return ctx.store.state.layout;
}
Я протестировал его с new.vue
в папке layout
.