标签: vue-router

如何在 axios 请求中使用 vue 路由器

我有以下 app.js 文件作为主要的 Vue 组件。

import './bootstrap';
import router from './routes';

new Vue({
    el: '#app',
    router: router

});
Run Code Online (Sandbox Code Playgroud)

我的 bootstrap.js 如下

import Vue from 'vue';
import VueRouter from 'vue-router';
import axios from 'axios';

// Global variable for API access
window.hostname = 'https://city.molotex.ru/cgi-bin/citygate.py?';

// Global variable for VueJS
window.Vue = Vue;

// Vue router
Vue.use(VueRouter);

//Vue Resource
var VueResource = require('vue-resource');
Vue.use(VueResource);

// axios
window.axios = axios;

window._ = require('lodash');

try {
    window.$ = window.jQuery = require('jquery');

    require('bootstrap-sass');
} catch (e) …
Run Code Online (Sandbox Code Playgroud)

javascript vue-router vuejs2

2
推荐指数
1
解决办法
1万
查看次数

apache 中的 vue.js 路由问题

我有一个带有 vue 路由器的 vue.js 应用程序来渲染各种组件。我有一个/home加载 home 组件的路径。在开发环境中,我可以通过localhost:8080/home在地址栏中给出并使用<router-link>. 当我将生产版本部署到 apache 服务器时,当我给出localhost/home错误时

在此服务器上找不到请求的 URL /home。

但是localhost/home当我们点击链接时,这些链接是有效的并且显示在地址栏中 为什么会发生这种情况?如何解决这个问题?

apache vue-router

2
推荐指数
1
解决办法
3692
查看次数

模板 v-if="main",不使用返回 this.$route.path.indexOf('/') === 0 in 计算的“main”

适用于我的其他路线,如“/dashboard”等,但出现在所有路线中。我基本上希望这个模板只在 url 为“/”时出现。在我的整个项目中都尝试过,只是李子不起作用。请帮忙,谢谢!!任何建议。

<template v-if="main">
  <div id="accordion-nav">
    <div class="accordion-panels">
      <a href="/dashboard">Dashboard <i class="fa fa-caret-right" aria-hidden="true"></i></a>
    </div>
    <div class="accordion-panels">
      <a href="/shifts">Shifts <i class="fa fa-caret-right" aria-hidden="true"></i></a>
    </div>
    <div class="accordion-panels">
      <a href="/other">Other <i class="fa fa-caret-right" aria-hidden="true"></i></a>
    </div>
  </div>
</template>

<script>
export default {
  name: 'accordion-nav',
  computed: {
    main: function () {
      return this.$route.path.indexOf('/') === 0
    }
  }
}
</script>

<style scoped>
</style>
Run Code Online (Sandbox Code Playgroud)

vue.js vue-router

2
推荐指数
1
解决办法
4295
查看次数

VueRouter 和元字段

根据 VueRouter 文档,可以添加元字段并根据其值全局限制路由。

按照概述尝试实现后,我收到一个错误:

ReferenceError: record is not defined (line 46)
Run Code Online (Sandbox Code Playgroud)

这对应于这一行:

if (!hasCookies(record.meta.cookies)) {
Run Code Online (Sandbox Code Playgroud)

这是具有路由器保护逻辑的文件:

import Vue from 'vue';
import VueRouter from 'vue-router';

Vue.use(VueRouter);

const routes = [
  { 
    path : '/authenticate/:id', 
    component : require ('./components/authenticate.vue'),
    redirect: '/here',
  },

  // can only get here if the passcode has been filled out
  {
    path : '/client/create',
    component : require('./components/createClientForm.vue'),
    meta : {
      cookies: ['passcode_cookie'], // need passcode to be able to create the client
      redirect: '/authenticate/1' // dummy …
Run Code Online (Sandbox Code Playgroud)

vue.js vue-router vuejs2

2
推荐指数
1
解决办法
3468
查看次数

Vue 路由器不工作

我是 Vue 新手。我一直在尝试使用 Vue-Router 设置一个简单的路由。但我有一个问题,我不知道为什么。

我能看到的“仪表盘”的消息,当我去到URL“ HTTP://本地主机:8080 /#/ ”,但我看不到“登录”当我去到URL“ HTTP://本地主机:8080 /# /登录”。

谢谢

索引.js

import Vue from 'vue'
import Router from 'vue-router'
import Dashboard from '@/components/Dashboard'
import Login from '@/components/Login'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      component: Dashboard
    },
    {
      path: '/login',
      Component: Login
    }
  ]
})
Run Code Online (Sandbox Code Playgroud)

登录.vue

<template>
    <p>Login</p>
</template>

<script>
  export default {}
</script>
Run Code Online (Sandbox Code Playgroud)

应用程序

<template>
  <div id="app">
    <router-view></router-view>
  </div>
</template>

<script>
export default {}
</script>
Run Code Online (Sandbox Code Playgroud)

仪表板.vue

<template>
    <p>Dashboard</p>
</template>

<script>
  export default …
Run Code Online (Sandbox Code Playgroud)

vue.js vue-router

2
推荐指数
1
解决办法
1万
查看次数

VueJS:TypeError:重新加载时无法读取未定义的属性

我有一个这样的页面:

<template>
  <div class="row flex">
    {{posts.id}}
  </div>
</template>
<script>
  import axios from 'axios'
  export default {
    async asyncData ({ route }) {
      let { data } = await axios.get('http://localhost:8000/api/v1/feeds/' + route.params.id + '/')
      return {
        posts: data
      }
    }
  }
</script>
Run Code Online (Sandbox Code Playgroud)

当我单击带有热重载(路由器链接)的链接时,它显示良好。但是当我重新加载这个窗口时,它会在 1 秒内出现然后消失。

视频:http : //g.recordit.co/ht0a0K2X81.gif

错误日志: 错误日志 SSR

我怎样才能解决这个问题?

vue.js vue-router nuxt.js

2
推荐指数
1
解决办法
7871
查看次数

Vue路由器编程导航不起作用

我使用vue-router在组件中进行程序化导航无法正常工作。成功登录后,我要将其重定向到仪表板页面。但是什么也没发生...

相关代码-路由器:

import Vue from 'vue'
import Router from 'vue-router'
import store from '../store'
import Login from '@/components/Login'
import Dashboard from '@/components/Dashboard'

Vue.use(Router)

export default new Router({
  mode: 'history',
  routes: [
    {
      path: '/login',
      name: 'login',
      component: Login,
      beforeEnter: (to, from, next) => {
        if (store.getters.isAuthenticated) {
          // if user is already authenticated,
          // redirect it to the dashboard
          next('/dashboard') // it works
        } else {
          next()
        }
      }
    },
    {
      path: '/dashboard',
      name: 'dashboard',
      component: Dashboard,
      beforeEnter: (to, from, …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-router

2
推荐指数
2
解决办法
6153
查看次数

单击活动路由器链接

在我的 Vue 2 应用程序中,我有一个菜单栏,其菜单项使用路由器链接。这些菜单项之一是“客户”,它将用户带到客户编辑器。现在,如果用户在客户编辑器中单击相同的“客户”菜单项,则不会发生任何事情。我认为这是因为文档中提到的这种行为:“在 HTML5 历史模式下,路由器链接将拦截点击事件,以便浏览器不会尝试重新加载页面。”

现在,这是完全可以理解的,而且在大多数情况下,这将是我想要的行为。但实际上在这里我希望重新加载组件,回到干净的状态。或者更准确地说,对于发生的某些事件,我可以在客户编辑器中处理这些事件以设置我希望它们成为的样子。事实上,我认为情况会是这样,但是当我设置手表时,因此

    watch: {
      '$route' (to, from) {
        console.log("Route changed");
      }
    },
Run Code Online (Sandbox Code Playgroud)

我没有看到任何记录到控制台的内容。可能发生了一些我没有处理的事件,而 Vue 只是简单地重用了该组件。但是我怎样才能阻止它这样做呢?

vue.js vue-router

2
推荐指数
1
解决办法
2959
查看次数

如何在vuejs的输入文本中添加禁用属性?

我有 2 个网址

  • /register

  • /register?sponsor=4

/register路由将给我一个干净的输入文本,我可以在其中输入所有内容
,第二个路由将带来相同的输入,但它的值为 4 并且它被禁用,因此用户无法修改它。
我设法使用 vue-router 从路由器动态获取参数,一切都很好,
但是当我访问时,/register我得到了干净的输入,但是一旦我开始输入,输入就会被禁用,我只能输入一个字符。
这是我到目前为止尝试过的,
HTML:

<input :disabled="sponsor ? true : false" v-model="sponsor" id="sponsor" type="number" class="form-control" name="sponsor" value="" required tabindex="14">  
Run Code Online (Sandbox Code Playgroud)

Javascript Vuejs

<script type="text/javascript">
    var router = new VueRouter({
        mode: 'history',
        routes: []
    });
    new Vue({
        router,
        el: '#app',
        data () {
            return {
                cities: [],
                city: '',
                selectedCountry: '',
                sponsor: null
            }
        },
        mounted: function() {
            if (this.$route.query.sponsor) {
                this.sponsor = this.$route.query.sponsor
                console.log(this.sponsor)
            }
        },
        methods: …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-router

2
推荐指数
1
解决办法
1万
查看次数

VueJS:单击相同的“路由器链接”后重新创建组件?

使用 vue.js 和 vue-router,有没有办法在点击“router-link”后重新创建一个与当前路由相同的路由的组件?

基本上,如果单击通向当前路由的“路由器链接”可以重新启动我的组件的“created()”或“mounted()”函数,那就太好了。

也许“$watch”有什么技巧,或者类似的东西,我真的不知道!

javascript vue.js vue-router vuejs2

2
推荐指数
1
解决办法
2222
查看次数

标签 统计

vue-router ×10

vue.js ×8

javascript ×4

vuejs2 ×3

apache ×1

nuxt.js ×1