Я создаю свой персональный сайт/блог как одностраничное приложение, используя Mithril.js. Все страницы и сообщения в блоге на моем сайте отображаются с использованием компонентов Page
и Post
, а правильная страница загружается на основе :slug
в URL-адресе.Мифриловый компонент, не обновляющийся при изменении маршрута
Проблема у меня в том, что всякий раз, когда я пытаюсь переключаться между страницами, содержимое страницы не обновляется. Переключение между страниц и сообщений работает, потому что я чередую между Page
и Post
компонентами. Но когда я пытаюсь использовать один и тот же компонент дважды подряд, переходя от на страницу, он не обновляет веб-страницу.
m.route(document.body, '/', {
// `Home` is a wrapper around `Page`
// so I can route to `/` instead of `/home`
'/': Home,
'/:slug': Page,
'/blog/:slug': Post
});
const Home = {
view() {
return m(Page, { slug: 'home' });
}
};
Здесь Page
составляющая (Post
компонент очень похож). Оба компонента отображаются правильно.
const Page = {
content: {},
oninit(vnode) {
m.request({
method: 'GET',
url: 'content.json',
}).then((response) => {
Page.content = response.pages[vnode.attrs.slug];
});
},
view() {
if (Page.content) {
return [
m('#content', m.trust(Page.content.body))
];
}
}
};
Почему Мифрил не признает, что слизняк изменился?
Спасибо, я просто c повесил ': slug' на': key', и теперь он работает! :) – evanrelf