在点击任何页面链接时触发 JavaScript,但在页面内容加载之前

:wave:

目前 Plugin-API 中没有允许您在页面过渡之前触发脚本的方法,据我所知,此前并未出现过此类需求。

不过,您可以利用应用程序路由中的 willTransition() 操作:

您可以在主题/组件中使用类似以下内容:

// 此操作在过渡后触发
api.onPageChange((url, title) => {
  console.log("after transition");
});

// 此操作在过渡前立即触发
api.modifyClass("route:application", {
  pluginId: "some-name",
  actions: {
    willTransition() {
      // 先运行核心代码
      this._super(...arguments);
      // 然后执行一些操作
      console.log("before transition");
      // 您也可以像这样查看您拥有的数据,例如 _router
      console.log(this)
    }
  }
});
6 个赞