Catalog npm
Back to packageRELEASE DETAILS

1.2.3

npm

@0x30/vue-navigation

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

animekeepaliveroutervue3
Published21 Mar 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": "ffb8909c79fb3528ffeffc014db60e51c88b0247",
  "tarball": "https://registry.npmjs.org/@0x30/vue-navigation/-/vue-navigation-1.2.3.tgz",
  "fileCount": 5,
  "integrity": "sha512-ZeYMVgFV326UfJziAw4XdCyWZzlzhznnCMzXXjw5SPir3thBUZ8AFju3BLQld3/MXMemqgRVwMzalIzLOwuyDA==",
  "signatures": [
    {
      "sig": "MEUCIQDrBnb3w9HI28vON9Qa3Uvldqa5bB/XphCUWngQj8R8qAIgJ9fyJictUxyKIUDL13H1WqKIC49H8u8mWDUcfSuUES8=",
      "keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"
    }
  ],
  "unpackedSize": 15808,
  "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkGQ/cACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpqFw//WupFJ5chmY5CL188ngKpWLf3YvfBCZcycv07qAjFqcU+RWPP\r\nP2n5muP3v31AZGqQP8qDVVFcA6iYXaHNTq4R423VtjRBtgxLT2/VJU5wnf3I\r\nrOF7EEBVLjcY+USGuMV5qU7pS2uFG2Limppv59L3sAam9MzJQ9wP52IFm+kf\r\n7sZWNkUkB/WHoCZ7oJk8bClMksY2tpKGLmDEQiqcuSYTfS2TPGVSeaXkBPm4\r\nZE1vjy29HFsPK2HiReXZ35L7xgVjwbc+bnTCs4YT3uq7I06L24OZ8BNkTgCn\r\nIpCR5yq+mRQ3IifjaP9lf2d3sABYjQbg7/20k2EODanfXOWBjnyCws98EG3v\r\nYwdeEH7NkrGWDKobGsxYjIIlqMGJM37NbvbgEnhKiZ8B+gms+K9MrgS7XJB9\r\nc1cpjU1tLCyPZ9goOBkq65Fb0SE+pdh9y2GAKRWYdxAM9ew8A8M9awyl8DEy\r\nXOKdCmkBvyj4RmlvszzZSPFWqJS0ivMgpB96HXQbEs60qr8waj89DhpMOgry\r\nKcs7s6+BtI0ABBX9QAHi51Hp8QYNpPzxe0s1EUmfIaGtOTsPQ79dJV/+EiA4\r\n6YVvU94x4+LjBHcU6VqG45pmcwitWLt0A7/U4GsbdaVOEtMjkrKnG7Gu0s+X\r\n6JyXdqGqDRYa7t5RuG8x6cMQgxFF6FkHAC8=\r\n=fqDh\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:e48bcc5259ab0566ab5f7eb06aca18b5b9e5632efc29f2ffcabca87baa664bce

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 →