欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一款移動優(yōu)先的Solid.js路由solid router stack使用詳解

 更新時間:2022年08月25日 08:48:53   作者:超級大柱子  
這篇文章主要為大家介紹了一款移動優(yōu)先的Solid.js路由solid router stack使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

???? solid-router-stack

你已經開始用了?試試這款移動優(yōu)先的路由

桌面端路由和移動端路由的區(qū)別

桌面端路由的特點是僅渲染當前匹配的路由, 而移動端路由的特點是頁面是一個棧, 歷史頁面會進行保留.

這款 solid-router-stack 就是使用這種機制, 它可以減少返回頁面后, 需要重繪制當前頁面的開銷. 并且可以監(jiān)聽如果棧下的頁面回到前臺, 進行一系列的事件處理.

View DEMO

特性:

  • 類似移動端導航, 保留頁面堆棧在DOM中
  • 自動懶加載頁面
  • 當你進入到指定頁面時, 輕松的預加載相關頁面
  • 自動讀取 URL params 到頁面的 Props 中

快速開始

創(chuàng)建一個路由列表, 渲染到視圖中:

import { render } from "solid-js/web";
import { createRouter } from "solid-router-stack";
import Welcome from "./welcome";
export const routers = createRouter({
  Welcome: {
    render: Welcome,
    // not use lazy import
    async: true,
  },
  Login: {
    render: () => import("./sign/Login"),
    // preload other pages
    preload: ["User"],
  },
  User: {
    render: () => import("./user"),
  },
});
// page background inherit the parent background:
document.getElementById("root").style.background = "#fff";
render(
  () => <routers.Routers root={routers.Welcome} hash />,
  document.getElementById("root");
);

使用導航

剛剛創(chuàng)建的 routers 內包含了所有頁面的導航方法, 比起直接使用 URL, 它更容易維護, 其中入參對象會以 URL params 的形式傳遞到新頁面或返回的舊頁面.

import { routers } from "./routers";
function Welcome() {
  const handlePushProduct = () => {
    routers.user.push();
  };
  const handleReleaseProduct = () => {
    routers.user.replace({ id: "123" });
  };
  const handleClearToProduct = () => {
    routers.user.clearTo();
  };
  const handleGoBack = () => {
    routers.goBack();
  };
  return (
    <div>
      <div onClick={handlePushProduct}>push product</div>
      <div onClick={handleReleaseProduct}>release product</div>
      <div onClick={handleClearToProduct}>clear all stack and push product</div>
      <div onClick={handleGoBack}>go back</div>
    </div>
  );
}
export default Welcome;

使用 URL Params

當你進入頁面時, 或者從返回到當前頁面時, 頁面的 Props 對象會更新, 你可以直接使用它, 由于 Solid 的特性它會自動監(jiān)聽變化.

不同于傳統(tǒng)頁面返回, stack頁面返回時, 它不會重新渲染. 所以我們需要更新 props 以決定我們是否有需要重繪的行為.

const handlePush = () => {
  routers.somePage.push({dog:"im push"});
};
const handleGoBack = () => {
  routers.goBack({dog:"im go back"});
};
// params in props
function App(p: {dog}) {
  return (
    <div>
      {p.dog}
    </div>
  );
}

頁面導航動畫

您可以設置多種頁面導航動畫

import { setNavigationAnimation } from "solid-router-stack";
// like application
setNavigationAnimation("moveTop");

不希望某個頁面持久在DOM中

你可以利用 <Show when={props.stackTop} /> 改變當前頁面的內容是否持久在 DOM 中

const Page: Component = (props) => {
  return (
    <Show when={props.stackTop}>
      <div>the page</div>
    </Show>
  );
};

導航事件監(jiān)聽

添加監(jiān)聽方法, 它會獲取 fromUrl 和 toUrl, 您可以通過返回一個新的 URL 來替換原本應該導航的 toUrl

import { routers } from "./routers";
routers.listen(({ fromUrl, toUrl, kind, index }) => {
  console.log(fromUrl, toUrl, kind, index); // /hello, /next, "push", 2
  return toUrl;
});

最后附上:

solid-router-stack Github 地址

以上就是一款移動優(yōu)先的Solid.js路由solid router stack使用詳解的詳細內容,更多關于Solid.js移動優(yōu)先路由的資料請關注腳本之家其它相關文章!

相關文章

  • uni-app制作小程序實現左右菜單聯動效果

    uni-app制作小程序實現左右菜單聯動效果

    這篇文章主要介紹了uni-app制作小程序實現左右菜單聯動效果,實現步驟和思路都很簡單,今天通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • vue實現點擊隱藏與顯示實例分享

    vue實現點擊隱藏與顯示實例分享

    在本篇文章中小編給大家分享了vue如何實現點擊隱藏與顯示的相關內容,有需要的朋友們跟著學習下。
    2019-02-02
  • Vue全局注冊與局部注冊兩種組件注冊的方式

    Vue全局注冊與局部注冊兩種組件注冊的方式

    本文主要介紹了Vue全局注冊與局部注冊兩種組件注冊的方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • 從零到一詳聊創(chuàng)建Vue工程及遇到的常見問題

    從零到一詳聊創(chuàng)建Vue工程及遇到的常見問題

    這篇文章主要介紹了從零到一詳聊如何創(chuàng)建Vue工程及遇到的常見問題 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • Vue使用driver.js做引導頁

    Vue使用driver.js做引導頁

    Driver.js是一個功能強大且高度可定制的基于原生JavaScript開發(fā)的新用戶引導庫,本文主要介紹了Vue使用driver.js做引導頁,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Vue.js實戰(zhàn)之利用vue-router實現跳轉頁面

    Vue.js實戰(zhàn)之利用vue-router實現跳轉頁面

    對于單頁應用,官方提供了vue-router進行路由跳轉的處理,這篇文章主要給大家介紹了Vue.js實戰(zhàn)之利用vue-router實現跳轉頁面的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-04-04
  • vue+axios實現圖片上傳識別人臉的示例代碼

    vue+axios實現圖片上傳識別人臉的示例代碼

    本文主要介紹了vue+axios實現圖片上傳識別人臉,這里采用的是vant的文件上傳組件,通過上傳圖片后端識別圖片里的人臉,感興趣的可以了解一下
    2021-11-11
  • Vue中的父子組件傳值及傳方法

    Vue中的父子組件傳值及傳方法

    這篇文章主要介紹了Vue中的父子組件傳值及傳方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue2手機APP項目添加開屏廣告或者閃屏廣告

    vue2手機APP項目添加開屏廣告或者閃屏廣告

    這篇文章主要為大家詳細介紹了vue2手機APP項目添加開屏廣告或者閃屏廣告的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 解決vue axios跨域 Request Method: OPTIONS問題(預檢請求)

    解決vue axios跨域 Request Method: OPTIONS問題(預檢請求)

    這篇文章主要介紹了解決vue axios跨域 Request Method: OPTIONS問題(預檢請求),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08

最新評論