我正在为vue编写测试代码。js组件,使用vue路由器,使用vue测试utils。
下面是与此相关的代码。
const Routes = [{
...
}, ...
{
...,
path: '/transfers',
name: 'transfers',
redirect: '/transfers/all',
...
},...]
Routes.ts
export default class Transfers extends Vue {
...
@Watch('$route', { immediate: true })
async setDataResource (value: any) {
const routeParams = value.params
const paramKey: string = Object.keys(routeParams)[0]
...
}
}
转移。vue
import { shallowMount, createLocalVue } from '@vue/test-utils'
import VueRouter from 'vue-router'
import Routes from '../../router/Routes'
const localVue = createLocalVue()
localVue.use(VueRouter)
...
const router = new VueRouter({ Routes })
...
describe('Elements', () => {
const div = document.createElement('div')
div.id = 'root'
document.body.appendChild(div)
router.push({ name: 'transfers', params: { processing: 'all' } })
const wrapper = shallowMount(Transfers, {
localVue,
store,
router,
attachTo: '#root'
})
...
})
转移。测验js
我想做的是用params在$route上测试手表。
它与'params:{处理:'all'}'配合得很好,但是
console.warn
[vue-router] Route with name 'transfers' does not exist
出现。
我会用路由器。推入({name:'transfers'})。vue,因此我认为该名称通常注册到routes。但仅用于测试,似乎找不到名为“传输”的路由。
路线。ts文件最初并没有为路由使用名称选项,但我添加了它,因为我只能使用名称选项将参数推送到路由器。我的意思是,我们的项目不需要名称选项!
所以我的问题是,
在上一个项目中,我做了很多测试。我总是嘲笑我的$路由和$路由器(参见代码片段)。我已经创建了一个我正在测试的页面的代码(包括整个文件)。它显示了我的基本设置和我测试路由对象的一些方法。即
let mocks = {
$route: {
path: '/some-path',
query: {
amount: null,
loanType: null
}
},
$router: [],
$validator: {
validateAll: jest.fn()
},
$toast: {
show: jest.fn(),
error: jest.fn()
},
$withProcessing: jest.fn()
}
要准确诊断您的问题而不跳进代码有点困难,但我希望您能从下面得到一些帮助。
https://codepen.io/RuNpiXelruN/pen/XWRKmoE
官方路由 对于大多数单页面应用,都推荐使用官方支持的vue-router库。更多细节可以看vue-router文档。 从零开始简单的路由 如果只需要非常简单的路由而不需要引入整个路由库,可以动态渲染一个页面级的组件像这样: const NotFound = { template: '<p>Page not found</p>' } const Home = { template: '<p>home
> 还有第二个警告:/src/main.js中的警告导出默认值(作为Vue导入)在vue中找不到。 它向我展示了一个空白站点,路由器可能出了问题,这是我应用程序的脚本。vue(对此不确定): 从“@/router”导入路由器导出默认值{} 这是我的index.js: main.js:
推荐直接使用官方 vue-router,VUX部分组件支持link属性直接支持vue-router的路由参数,vux2模板内置了vue-router。 如果使用了过渡(转场动画),在iPhone上使用左划返回时动画会再执行一遍,目前没有找到可行的处理方法,如果你有处理方案,欢迎PR。 https://github.com/airyland/vux/pull/2259
由于以下错误(npm 3.10.10,webpack 3.8.1),我无法使用vue routes get。如何解决这个问题 编译失败。 ./node_modules/babel loader/lib/node_modules/vue loader/lib/selector.js?type=script 我使用简单的网页包 Quotes.vue Quote.vue new-quote.vue Ap
我有以下Vuex商店(main.js): 我还为Vue路由器(routes.js)定义了以下路由: 我试图这样做,如果Vuex存储了对象,并且将属性设置为,则路由器会将用户重定向到登录页面。 我有这个: 问题是,我不知道如何从函数内部访问Vuex商店的对象。 我知道我可以在组件中使用来设置路由器保护逻辑,但这会使每个组件变得杂乱无章。我想在路由器级别集中定义它。
本文向大家介绍vue-router 控制路由权限的实现,包括了vue-router 控制路由权限的实现的使用技巧和注意事项,需要的朋友参考一下 注意:vue-router是无法完全控制前端路由权限。 1、实现思路 使用vue-router实例函数addRoutes动态添加路由规则,不多废话直接上思维导图: 2、实现步骤 2.1、路由匹配判断 通过vue-router前置守卫beforeEach中参