反正自己趟的浑水,自己长记性,年纪大了,记不住,以下的解决的办法
因为APP有启动图,我做的路由是这样子的
首先是APP.svelte文件,使用的官方的一个view,照着复制的,目前没有其他的啥问题
<script>
import { App, View } from "framework7-svelte";
import routes from "./routes.js";
const f7params = {
routes,
name: "ulegou",
id: "ulegou",
};
</script>
<App {...f7params}>
<View main={true} url="/"/>
</App>
以上的路由url跳转到index.svelte文件是APP的启动图,这个相当于一个中转站了,里面包含了默认的一些配置之类的东西,然后在跳转登录页面,login.svelte
官方看到的跳转使用的是这个,可能没有仔细看doc文档啊,因为都是英文的,看不懂,啊哈哈哈哈哈哈
f7router.navigate("/login");
使用上面这个方法跳转后会在每次进入页面的时候刷新一次index.svelte的内容,相当于重复执行了一次,然后我就觉得,官方的文档应该有解决方案,努力的去翻译,一行一行的粘贴复制,功夫不负有心人,让我找到了附带的参数
f7router.navigate("/login", {
reloadCurrent: true,
reloadAll: true,
});
没错,就是加上这2个就可以了reloadCurrent = true 和 reloadAll = true
分别的意思是
reloadCurrent 用route中的新页面替换当前页面,本例中没有动画
reloadAll 加载新页面并从历史记录和DOM中删除所有以前的页面
因为我这个APP的启动图不是每次启动都会加载的,有缓存的时间如果用户在这个时间内看过启动图了就直接跳过,所以,我吧启动图直接去掉了,顺便删除启动页面,就添加了这个reloadAll,因为第一次启动入口路由必须要经过启动页面(包含了APP本地的缓存配置等)进行跳转,因为设置完了,启动页面就没用了,就删掉了,
还有其他的参数看一下官方文档吧,按需添加,文档地址入口