小编Ste*_*n-v的帖子

有条件地加载vue-router

我正在我的主vue实例上设置我的路由器,如下所示:

router.js:

const router = new VueRouter({
    routes: []
});
Run Code Online (Sandbox Code Playgroud)

主Vue实例:

import router from '@/router';

window.app = new Vue({
    el: '#vue',

    router,

    // etc.
});
Run Code Online (Sandbox Code Playgroud)

现在我在一个PHP应用程序中运行它,这个Vue实例在任何地方设置,因为我在整个地方使用Vue组件.

路由器是我只用于几页的东西.我希望只有某些PHP页面可以拥有Vue Javascript路由器.

即使在router-view甚至没有加载的PHP页面上,路由器仍然会激活.片段可以看到:

#/
Run Code Online (Sandbox Code Playgroud)

我如何确保路由器仅在某些PHP路由上启动(可以这么说)?

javascript php vue.js vue-router vuejs2

4
推荐指数
1
解决办法
437
查看次数

检查是否第一次查看页面

目前,我正在开发一个可以使用额外用户可用性的网站,所以我想推出几个模态窗口,以帮助用户第一次访问几页.

我想检查是否是用户查看特定页面的时间.我已经读过在使用cookie时如何遇到问题.它们可以删除,用户可以使用不同的PC或设备等.

此外,我想检查多个页面,如果这是他们第一次查看,不仅是在登录后直接查看.

我猜这是一个好主意,就是要在其中创建一个单独的表格,其中包含我需要的页面,boolean如果查看与否则设置它.

这是最好的方法吗?

php database cookies laravel

3
推荐指数
1
解决办法
1895
查看次数

Laravel安装Algolia包

我正在尝试安装Algolia laravel包但我收到此错误:

找不到Trait'App\AlgoliaEloquentTrait'

我按照此链接中的安装,配置和快速入门下的说明操作:

https://github.com/algolia/algoliasearch-laravel#configuration

我只是添加了使用AlgoliaEloquentTrait; 我的一个模特.我在这里做错了什么?

php traits laravel laravel-5 algolia

3
推荐指数
1
解决办法
337
查看次数

CSS 三角形不像正方形那样工作?

我想知道是否有任何方法可以创建具有真正三角形形状的三角形?或者有一种方法可以假装它尽可能接近?

每当你用 svg 之类的东西绘制三角形时,你总是会遇到一个镜像的透明三角形,因为元素被绘制为盒子。

我举了一个例子,因为我发现很难解释这一点:

http://codepen.io/stephan-v/pen/gaxdjm

svg {
  width: 100px;
  height: 100px;
  position: absolute;
  right: 0;
  top: 0;
}
svg polygon {
  fill: rgba(168, 210, 71, 0.6);
  cursor: pointer;
}
svg polygon:hover {
  fill: rgba(168, 210, 71, 0.9);
  cursor: pointer;
}
article {
  position: relative;
  width: 200px;
  height: 200px;
  background-color: whitesmoke;
  border: 1px solid lightgrey;
}
article a {
  display: block;
  width: 100%;
  height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
<article>
  <a href="#">
  </a>
  <svg>
    <polygon points="0,0 100,0 100,100" />
  </svg>
</article>
Run Code Online (Sandbox Code Playgroud)

我将整篇文章设为链接,并将 svg …

html css svg css-shapes

3
推荐指数
1
解决办法
1490
查看次数

如何在Vue.js中正确抛出错误?

我正在构建一个SVG组件,它采用没有扩展名的文件名.我想强制这个并且如果使用扩展名则抛出错误.

由于我有一个ES6编译器,我只是使用它:

if (this.name.includes('.svg')) {
    throw 'Do not use the svg extension';
}
Run Code Online (Sandbox Code Playgroud)

这是在Vue.js中抛出错误的正确方法还是有更好的方法?目前,当我实施此功能并测试时,我收到2个警告.

我正在使用堆栈跟踪和我自己的错误获得[Vue警告].我最好只想在控制台中抛出一条简单的错误信息来表示用户做错了什么.

有关这种方法的任何想法或在Vue.js或javscript中更好地处理这个问题的技巧吗?

javascript vue.js vue-component vuejs2

3
推荐指数
1
解决办法
4932
查看次数

Vue手表[胖箭范围]提供错误的上下文

我正在使用lodash去抖动函数调用,但我想知道为什么我的this值不像我期望的那样继承范围.

这些是我的Vue组件的相关部分.

import debounce from 'lodash/debounce';

watch: {
    query: debounce(() => {
        this.autocomplete();
    }, 200, {
        leading: false,
        trailing: true
    }),
Run Code Online (Sandbox Code Playgroud)

上面的情况不起作用,因为我的this值不指向Vue组件,而是显示如下的Object:

Object
    __esModule: true
    default: Object
    __proto: Object
Run Code Online (Sandbox Code Playgroud)

我的箭头语法是不是要继承上下文this

以下似乎工作正常:

query: debounce(function test() {
    this.autocomplete();
}, 200, {
    leading: false,
    trailing: true
})
Run Code Online (Sandbox Code Playgroud)

对此可能有一个简单的答案,但我希望有人可以帮助我.

javascript ecmascript-6 vue.js vue-component vuejs2

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

使用 vue 将方法传递给 lodash 给出“预期的函数”

我正在尝试将 Vue 函数传递给 lodashthrottle 方法。难道我不应该做这样的事情吗?

当我尝试执行此操作时,出现以下错误:

观察者“查询”回调中出现错误:“TypeError:需要一个函数”

守望者

watch: {
    query() {
        throttle(this.autocomplete(), 400);
    }
}
Run Code Online (Sandbox Code Playgroud)

方法

methods: {
    autocomplete() {}
}
Run Code Online (Sandbox Code Playgroud)

即使我传递了函数引用,我仍然收到错误消息。如果我用匿名函数包装它,它不会触发:

throttle(() => { this.autocomplete(); }, 400);
Run Code Online (Sandbox Code Playgroud)

我刚刚检查过,该autocomplete函数实际上似乎确实会触发,无论它不是我顶部示例中的函数的错误。

这里出了什么问题?

编辑:

Jsfiddle: http: //jsfiddle.net/yMv7y/2780/

javascript lodash vue.js vuejs2

3
推荐指数
1
解决办法
6401
查看次数

Vue.js缓存方法的结果?

我目前有一个循环,在该循环中两次调用相同的函数,如下所示:

<div class="checkbox" v-for="(value, key) in range">
    <input type="checkbox" :disabled="count(Number(key)) === 0">

    <span class="items">{{ count(Number(key)) }}</span>
</div>
Run Code Online (Sandbox Code Playgroud)

因为该count方法被调用了两次,所以它使调试该count函数变得更加困难,因为在诸如a之类的console.log所有值上都会出现两次。

第一种计数方法只是检查它是否为零,而另一种则表示计数。有没有一种简单的方法可以重用该count方法的结果,因此我实际上不必两次调用它。当我已经有结果时,无需再次调用它。

诸如计算属性之类的东西将无法正常工作,因为我需要传递当前的迭代键。

javascript vue.js vue-component vuejs2

3
推荐指数
1
解决办法
1889
查看次数

Vue听Vuex提交?

有没有一种方法可以侦听Vuex提交而无需查看任何随提交更改的属性?只是简单地确定是否发生了提交?

我有一个要放入NPM包中的过滤器组件,但是我已经有一个用例,其中每当选择过滤器时,我都希望设置一个存储过滤器首选项的cookie。

显然,设置cookie等不是过滤器组件的责任,这应该是可选的。

我想一种方法是使用全局事件总线,但这意味着使用我的程序包的用户必须完全按照我的需要进行设置。每当过滤事件触发时,用户就可以执行必要的操作。

我如何在保持SRPNPM包清洁的同时仍允许用户参与某些事件?

有点广泛的问题,但我希望您能理解。

npm vue.js vue-component vuex vuejs2

3
推荐指数
1
解决办法
3281
查看次数

toLocaleString 不带小数零的价格

我想知道如何有效地从价格中删除小数零,同时保留 2 位小数(如果有)

因此,如果一个价格是,135.00它应该成为135

然而,如果价格是,135.30则应保留两位小数。

如果是价格,135.38则可以保留小数。

这就是我现在所拥有的:

const currency = 'EUR';
const language = 'NL';

var localePrice = (amount) => {
  const options = {
    style: 'currency',
    currency: currency
  };

  return amount.toLocaleString(language, options);
}
Run Code Online (Sandbox Code Playgroud)

现在我可以使用正则表达式或类似的东西,但我希望有一种更简单的方法来完成此任务。

我制作了一个 JSFiddle 来说明我的问题,这使得使用代码变得很容易。

https://jsfiddle.net/u27a0r2h/2/

javascript formatting locale numbers currency

3
推荐指数
1
解决办法
4884
查看次数