Catalog npm
Back to packageRELEASE DETAILS

1.1.6

npm

@0x30/vue-navigation

模仿ios `UINavigationController` 缓存页面的方式,前进新的视图,back从堆栈中拉取缓存的视图

animekeepaliveroutervue3
Published3 Jan 2023
Direct dependencies8
Transitive dependenciesNot calculated

README

Current package documentation

@0x30/vue-navigation

安装

pnpm install @0x30/vue-navigation

使用

初始化

component 方式

import { Navigator } from '@0x30/vue-navigation'

createApp(
  <Navigator>
    <Home />
  </Navigator>
).mount('#app')

plugin 方式

import { navigation } from '@0x30/vue-navigation'

createApp(<Home />)
  .use(navigation)
  .mount('#app')

操作方法

import { push, replace, to } from '@0x30/vue-navigation'

/**
 * 推出 一个 div 到当前之上
 */
push(<div />)

/**
 * replace 当前
 */
replace(<div />)

/**
 * repace 与 push 的辅助方式
 */
to(true)(<div />)

返回

import { back, blackBoxBack, backToHome } from '@0x30/vue-navigation'

/**
 * 返回方法
 */
back()

/**
 * 黑箱返回
 * 当页面前往 一个页面后 可以移除掉一些之前的页面
 * 
 *  a -> b -> c -> d
 *  blackBoxBack(2)
 *  a -> d
 */
blackBoxBack()

/**
 * 回到rootView
 */
backToHome()

hooks 方法

  • onWillAppear 页面即将出现,执行动画之前
  • onDidAppear 页面已经出现,执行动画完成
  • onWillDisappear 页面即将消失,执行动画之前
  • onDidDisappear 页面已经消失,执行动画完成
  • useTransitionEnter 进入动画配置
  • useTransitionLeave 离开动画配置
  • useLeaveBefore 页面返回之前的拦截方法
  • useQuietPage 设置当前页面为安静的页面
  • usePageMate 配置当前页面的 基础信息
  • getCurrentPageMate 获取当前页面的 配置信息
  • onPageChange 当前发生变化
  • useProgressExitAnimated 配置渐进式动画

特殊说明

  • 此库不是 router,只是一种管理组件的方式
  • 此库所有页面均活跃,这不是内存泄漏,这符合ios视图导航的设计
  • 此库没有路由表,没有嵌套路由
  • 此库假定所有的页面组件均为fixed,且大小与屏幕一致
  • 此库只适用于极小众的项目,比如: 混合开发app内嵌的h5app

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 8

Native requirements
8 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
vue
Environment
{
  "local_name": "vue",
  "alias": false,
  "peer_metadata": null
}
^3.2.45runtime
vite
Environment
{
  "local_name": "vite",
  "alias": false,
  "peer_metadata": null
}
^4.0.0development
animejs
Environment
{
  "local_name": "animejs",
  "alias": false,
  "peer_metadata": null
}
^3.2.1development
vue-tsc
Environment
{
  "local_name": "vue-tsc",
  "alias": false,
  "peer_metadata": null
}
^1.0.11development
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^4.9.3development
@types/animejs
Environment
{
  "local_name": "@types/animejs",
  "alias": false,
  "peer_metadata": null
}
^3.1.6development
vite-plugin-dts
Environment
{
  "local_name": "vite-plugin-dts",
  "alias": false,
  "peer_metadata": null
}
^1.7.1development
@vitejs/plugin-vue-jsx
Environment
{
  "local_name": "@vitejs/plugin-vue-jsx",
  "alias": false,
  "peer_metadata": null
}
^3.0.0development

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "c2fd2fd4e7c8135816f318d6a920ba3f40bc499e",
  "tarball": "https://registry.npmjs.org/@0x30/vue-navigation/-/vue-navigation-1.1.6.tgz",
  "fileCount": 22,
  "integrity": "sha512-lyZU+u5xlJ7MkW5AT13f/MJXwdytH020bJop98McaIyDdkxA9bamjDq6vAkT8SOZYsetTLsCPTOZr89ImxCTPA==",
  "signatures": [
    {
      "sig": "MEUCIQDf5g1QHufZW+CcKf59Io+ByvMqGIZf+gdRc11HBbBZegIgDzi7OUf3K1hS9CJ1ZkSPHzjSdhnpDcGOVNYtjRJ7kqM=",
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"
    }
  ],
  "unpackedSize": 33024,
  "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjs4qoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqHiw//Rz+FC5bstvvRdTrGkEHT7jVWhmOzpkly6hGiCxjtHZrifQ5v\r\nvYq0Engz5IM/LNApxfrEXmxOmS9HFkYhfRW/wP57W5qveRreqKqUp3btbPl2\r\nOIzYkuVM0ru0jVQqO6K9nLGjg6glOpbFIflVQwSxZaunV1ccvNochyNR9JUx\r\ntHx3CwI+G1V40GrHEAi/z0d7QBf6h2LR9KT5H9mxn1M4YnhqpXHV9pi0HILV\r\nrAtVGmm+VLM3208dDW9Hxry0of39ShJncF9sZq3uFCSEy1xj2qtR+e60THSf\r\n2cCQ4P9k+uneXCOQ6GT7wm0kzbZnZncZJXzhoWxLWvn3p8nUzfQLpyXGcvy9\r\nERdRGROOt9K1crj1BP7M6GJbrqneomIEMJRKjMilurGMRE+8K2Bw5qngVOaB\r\n8cRRDHHqeqb2Uj2JS1wy6Z5HeCL6+ZEYzlPzzGJJdSqNFCwpP6G2MMZ0QHN3\r\nxcum5D4Sox2JAks1Tkqjp22qmNj35f8JI3KTn6KtT9Ujck4Y3/uoPoeRjQ5k\r\nSpWk0MGEqssRFK69kCj8X2fBw/KMcgqpLgFWHJYeLSaf6CRaawJNyywfCpQW\r\n+GDCHD5lkoqd1UIJ8XCZiTKFEphm2XYl7BS0kqka4zqFENpnBiHUsl2I0dGJ\r\nKQVcGSNjwfRik/U0x0nRO4kypFOqkfrMnqc=\r\n=Cm/f\r\n-----END PGP SIGNATURE-----\r\n"
}

Repository

PENDING
0x30/vue-navigation

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:34 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:736d600dbd5531fac59d34d2c3ac5c6553b3f742fc5fe4e9c68b2603e40db50e

Other collected versions

1.3.184 Nov1.3.177 Jul1.3.1620 Jun1.3.1521 May1.3.1418 Oct1.3.138 JanView all collected versions →