想在vue项目中的utils文件夹中的.js文件增加路由跳转及弹窗该如何加?
没有在.vue页面中,在.js文件中打印router是undefined
直接引入就可以用了
import router from "@/router";export function getRouterInfo() { console.log(router);}
// @/route/index.jsconst router = new VueRouter({ mode: 'history', base: '/', routes: [ { path: 'somewhere', component: somewhere, } ],})export default router
import router from '@/route'export function goSomewhere() { router.push('/somewhere')}
如果是想加弹窗的话可以写一个挂载方法,拿我正在用的举例:
import Vue from 'vue'export const cache = new Set()export default function useDialog(component) { const div = document.createElement('div') const el = document.createElement('div') const id = 'dialog-' + Math.random() div.appendChild(el) document.body.appendChild(div) const ComponentConstructor = Vue.extend(component) return (propsData = {}, parent = undefined) => { let instance = new ComponentConstructor({ propsData, parent, }).$mount(el) const destroyDialog = () => { if (cache.has(id)) return if (instance && div.parentNode) { cache.add(id) instance.visible = false // 在关闭动画执行完毕后卸载组件 setTimeout(() => { cache.delete(id) instance.$destroy() instance = null div.parentNode && div.parentNode.removeChild(div) }, 250) } } // visible控制 if (instance.visible !== undefined) { // 支持sync/v-model instance.$watch('visible', (val) => { !val && destroyDialog() }) Vue.nextTick(() => (instance.visible = true)) } return new Promise((resolve, reject) => { // 组件内 emit done 事件表示确认 instance.$once('done', (data) => { destroyDialog() resolve(data) }) // 组件内 emit cancel 事件表示取消 instance.$once('cancel', (data) => { destroyDialog() reject(data) }) }) }}
使用用法:
import AddGroupDialog from './AddGroupDialog.vue'function handleAdd() { useDialog(AddGroupDialog)({// ...props }).then(() => {// onDone }) },
route(Object) 此为一个路由跳转方法,内部是对uni多个路由跳转api的封装,更方便使用 Object参数说明: 参数名 类型 默认值 是否必填 说明 type String navigateTo false navigateTo或to对应uni.navigateTo,redirect或redirectTo对应uni.redirectTo,switchTab或tab对应uni.swit
本文向大家介绍react-router JS 控制路由跳转实例,包括了react-router JS 控制路由跳转实例的使用技巧和注意事项,需要的朋友参考一下 Link组件用于正常的用户点击跳转,但是有时还需要表单跳转、点击按钮跳转等操作。这些情况怎么跟React Router对接呢? 下面是一个表单。 第一种方法是使用browserHistory.push 第二种方法是使用context对象。
我的页面是三级嵌套路由,结构类似于 /message/detail/0。 但当我使用 this.$router.push('/index') 返回首页的时候,页面路径变成了/message/detail/index。 请问我该如何解决这个问题,希望从 /message/detail/0 页面直接跳转到 /index。 这个是路由配置的JS:
我想加载(要求)一个包含json模式的文件夹,这些模式具有基于其文件的引用。 换句话说,我有 并在同一文件夹中的另一个文件中: 这些模式在sperate文件中,现在应该加载到JS中,以便针对json对象进行验证。但是,文件夹内的引用应该仍然有效。 这就是为什么我的问题是,是否以及如何能够加载一个装满json文件的文件夹,而不需要中断引用。 这个库将使用这些模式来验证json对象:https://g
我只想从文件的完整路径中获取文件夹路径。 例如,我希望只得到(不包括)。 我曾经尝试过这样的事情: 但它给了我这样一个结果: 这不是我需要的结果(是)。 关于如何获取文件路径有什么想法吗?
已知shops目录下有一个index.vue文件,按住ctrl+鼠标点击路径进行跳转,如何实现不写index.vue也能进行跳转呢?