小编Ber*_*ert的帖子

Vue-router错误:TypeError:无法读取未定义的属性"匹配"

我正在尝试编写我的第一个Vuejs应用程序.我使用vue-cli和简单的WebPack样板.

当我vue-router向我的应用程序组件添加链接时,我在控制台中收到此错误

渲染函数出错:"TypeError:无法读取未定义的属性'匹配'"

这是我的代码:

App.vue

<template>
  <div>
    <h2>Links</h2>
    <ul>
      <router-link to='/'>Home</router-link>
      <router-link to='/query'>Query</router-link>

      <router-view></router-view>
    </ul>
  </div>
</template>

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

main.js

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

Vue.use(VueRouter)
import routes from './routes.js'
import App from './App.vue'

const app = new Vue({
  el: '#app',
  routes,
  render: h => h(App)
})
Run Code Online (Sandbox Code Playgroud)

routes.js

import VueRouter from 'vue-router';
let routes=[
  {
    path: '/',
    component: require('./Components/Home.vue')
  },
  {
    path: '/query',
    component: require('./Components/Query.vue')
  }
];

export …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-router vuejs2

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

使用Vue路由器对Params更改做出反应的最佳实践

使用Vue路由器时,/foo/:val您需要添加一个观察器以响应参数更改.这导致在URL中具有参数的所有视图中有些恼人的重复代码.

这可能类似于以下示例:

export default {
    // [...]
    created() {
        doSomething.call(this);
    },
    watch: {
        '$route' () {
            doSomething.call(this);
        }
    },
}

function doSomething() {
    // e.g. request API, assign view properties, ...
}
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以克服这个问题?可以将处理程序created和$route更改结合起来吗?是否可以禁用组件的重用,以便根本不需要观察者?我正在使用Vue 2,但这对Vue 1来说也许很有趣.

vue.js vue-router vuejs2

15
推荐指数
1
解决办法
6108
查看次数

从vuex变异返回值?(新创建的对象的id)

我试图在vuex商店的一个部分创建一个对象,然后将id传递给另一个对象,我不知道如何正确地做到这一点,因为突变不能返回任何返回(在这种情况下,id ).

两个商店对象看起来像这样:

// store/report.js
const state = {
    name: 'Untitled Report',
    subReportIds: []
};

// store/subReport.js
const state = { ... }
Run Code Online (Sandbox Code Playgroud)

我希望此操作创建空白报告,然后空白子报告,然后将子报告ID分配给新创建的报告.(子报告是独立的实体,可以由多个报告使用,因此存储中的区域不同)

const actions = {
    createNewReport({ state, commit }) {
        commit(mutationTypes.CREATE_NEW_REPORT)
        // below doesn't work - i can't get return from mutation
        let newSubreportId = commit(mutationTypes.ADD_NEW_SUBREPORT)
        // if this worked, i'd then do something like
        commit(mutationTypes.ADD_SUBREPORT_TO_REPORT, newSubreportId)
    }
};
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现上述目标?

vue.js vuex vuejs2

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

如何正确使用Java中的volatile关键字?

说我有两个线程和一个对象.一个线程分配对象:

public void assign(MyObject o) {
    myObject = o;
}
Run Code Online (Sandbox Code Playgroud)

另一个线程使用该对象:

public void use() {
    myObject.use();
}
Run Code Online (Sandbox Code Playgroud)

变量myObject是否必须声明为volatile?我想知道什么时候使用volatile而什么时候不用,这让我很困惑.是否有可能第二个线程在其本地内存缓存中保留对旧对象的引用?如果没有,为什么不呢?

非常感谢.

java volatile

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

Vue 2.0实例不会听到vue-router组件发出的事件

我正在使用Vue 2.0-rc.6(目前最新)和Vue-router 2.0-rc.5(目前最新).

我尝试在我this.$emit('custom-event')的一个路由器组件中,this.$on('custom-event', () => { console.log('I heard an event') })在我的Vue实例中,但事件没有被监听.路由器组件本身正在听取事件但不是Vue实例.

任何的想法?

看看这个jsfiddle.

javascript vue.js vue-router vuejs2

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

如何让Flow正常使用Vue 2(webpack)?

我正在尝试将Flow添加到Vue 2 webpack-template.为了记录,我只在运行时(文件遵循.vue格式/标准).

我的第一次尝试是使用流经cli,我意识到它不会起作用,因为它不知道如何处理.vue文件.

我的第二次尝试是添加一个webpack加载器(即 flow-status-webpack-plugin)并运行Flow check作为构建的一部分(例如,eslint作品).这没有用,所以我调查了其他选择.

我的第三次尝试是使用一个babel插件,起初它相当成功.我使用了babel-plugin-typecheck + babel-plugin-syntax-flow.Webpack中没有输出,但类型错误会破坏应用程序.我对这种方法很好; 它可以正常使用CI并打破构建.

这是我.babelrc看起来的样子:

{
  ...
  "plugins": [
    ...
    ["typecheck", {
      "disable": {
        "production": true
      }
    }],
    "syntax-flow",
    "transform-flow-strip-types"
  ],
  ...
}
Run Code Online (Sandbox Code Playgroud)

此时,Flow按预期的方式对全局方法起作用,但在Vue组件内不起作用:

<template>...</template>

<script>
/* @flow */
const flowIt = (a: number): number => {
  return a * 10
}

flowIt(20)
flowIt('bah') // Uncaught TypeError: Value of argument "a" violates contract. Expected: number Got: string

export default { …
Run Code Online (Sandbox Code Playgroud)

webpack vue.js flowtype babeljs vuejs2

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

Vue-router 2改变路由但不更新视图?

我有一个使用以下网站的登录问题:

  • Vue.js v2.0.3
  • vue-router v2.0.1
  • vuex v0.8.2

在routes.js我有一个简单的拦截器设置

router.beforeEach((to, from, next) => {
if (to.matched.some(record => record.meta.requiresAuth)) {
    // this route requires auth, check if logged in
    // if not, redirect to login page.
    if (!router.app.auth.isUserLoggedIn) {
        next({
            path: '/login',
            query: { redirect: to.fullPath }
        })
    } else {
        next()
    }
} else {
    next() // make sure to always call next()!
}
Run Code Online (Sandbox Code Playgroud)

})

并且login.vue,在使用Google API仅用于登录成功后处理登录页面逻辑我称之为:

this.login(userData).then( 
    () => this.$router.push(this.redirectToAfterLogin), // Login success
    () => {} …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-router vuejs2

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

如何检查当前页面是否在ASP.Net中使用SSL?

我有一个网站,根据设计和客户端的偏好,可以使用HTTP或HTTPS提供服务.客户公司只需选择是否使用http://或https://链接到我们的站点,IIS将完成其余工作.正在向页面添加一项功能,该页面处理只能通过SSL查看的敏感信息.客户已同意在不使用HTTPS连接时,应在此页面上禁用此附加功能.

在Page_Load事件中,我想添加一个IF语句,该语句检查当前是否正在通过HTTPS查看该页面,以显示或禁用此可选功能.我可以读取URL以查看它是否以https://开头,但担心该方法不安全.

在Page_Load事件期间是否有可以检查以测试HTTPS的属性?

asp.net ssl https

11
推荐指数
1
解决办法
7766
查看次数

从vue中的子组件访问键

根据Vue docs,绑定密钥需要在v-for中使用自定义组件:

<template v-for="(task,i) in tasks">
    <task-card v-bind:task="task" v-bind:key="i"></task-card>
</template>
Run Code Online (Sandbox Code Playgroud)

我想在子组件(task-card)中使用该键,但是既不使用this.key也不添加key作为prop(是保留的Vue关键字).有没有办法做到这一点,而没有通过另一个价值"我"的道具?目前正与之合作"vue": "^2.5.9".

javascript vue.js vuejs2

11
推荐指数
1
解决办法
7002
查看次数

Vue 2检查元素在视口上是否可见

我正在尝试研究vue2,并想知道是否有任何方法可以轻松跟踪元素在视口中是否可见,以便我们可以在向下滚动页面时执行滑入框等操作.任何npm包或任何可以建议的?谢谢.

vuejs2

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

标签 统计

vuejs2 ×8

vue.js ×7

javascript ×4

vue-router ×4

asp.net ×1

babeljs ×1

flowtype ×1

https ×1

java ×1

ssl ×1

volatile ×1

vuex ×1

webpack ×1