我正在使用Mithril.js将我的个人网站/博客创建为单页应用程序。我网站上的所有页面和博客文章都是使用Page
和Post
组件呈现的,并且根据URL中的:slug
加载了正确的页面。
我遇到的问题是,每当我尝试在页面之间切换时,都不会更新页面的内容。在页面和帖子之间切换是可行的,因为我在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))
];
}
}
};
Mithril 为何不认识那颗鼻涕虫变了?
最佳答案
docs page for m.route
为您提供解决方案。