草庐IT

vue-component

全部标签

vue项目created()被调用多次的坑

一、问题描述最近碰到一个奇怪的生产问题:正常情况下、前端页面会请求一次后台、然后后台返回信息("处理成功"或"处理失败")、前端展示;后台用aop+redis写了一个防止重复调用的方法,如果5s内同一个用户重复调用同一个接口,就返回"请勿重复调用",前端就会展示这个。但是,某几个页面,前端总是会重复调用后端2次,导致用户只能看到"请勿重复调用",无法确认本次操作是成功还是失败,严重影响了用户的正常使用。(虽然是处理成功,但是显示不出来…)一开始还怀疑是不是后端的问题,排查了半天,终于锁定了,是前端的问题,vue项目中的created()方法被调用了2次。继续排查,发现从正常页面跳转到这个问题页

javascript - 从第三方库扩展 vue.js 组件

我正在使用来自element-ui的组件ElDatepicker,我想更改它的模板和事件处理程序方法。我正在尝试在单个文件组件中执行类似的操作:importVuefrom'vue';importElDatePickerfrom'element-datepicker'Vue.use(ElDatePicker)vardpkr=Vue.component('ElDatePicker')console.log(dpkr)exportdefault{extends:['ElDatePicker']}但它不起作用。我该如何改变它?https://github.com/ElemeFE/element

javascript - 如何捕获 Vue.JS SPA 中抛出的所有错误

我正在创建一个网络应用程序并trycatchvue.js网络应用程序中任何地方抛出的所有错误。我在看errorHandler但它仅在渲染或观察者期间捕获错误,如前所述:Assignahandlerforuncaughterrorsduringcomponentrenderandwatchers.ThehandlergetscalledwiththeerrorandtheVueinstance.从这个question得到提示,我写了下面的代码:window.onerror=function(errorMsg,url,lineNumber,column,errorObj){console.

javascript - 将 vee-validate/HTML 属性添加到插槽中的输入元素

在我的应用程序中,我有很多表单,大多数输入看起来完全像这样:{{$t('form.language')}}{{errors.first('language')}}这会一遍又一遍地重复。唯一真正改变的是字段名称和输入类型。有时它是一个选择,有时它是一个更复杂的组件而不是简单的HTML组件。我的想法是创建某种包装器组件。所以我不必复制所有这些,只需使用类似的东西:我试过那样实现它,但它不起作用:{{$t('form.'+name)}}{{errors.first(name)}}exportdefault{props:['name']}你有什么想法吗?问题是我无法轻松地将mixins和pro

javascript - 使用 aria-live 在 vue.js 中向屏幕阅读器发布信息

我正在尝试让一个vue组件在我的网站上发生不同事件时动态地向屏幕阅读器宣布信息。我让它工作到单击按钮将填充aria-live="assertive"和role="alert"文本的范围。这第一次工作得很好,但是,单击具有类似行为的其他按钮会导致NVDA在阅读新文本之前阅读以前的文本两次。这似乎发生在vue中,但使用jquery的类似设置却没有发生,所以我猜它与vue呈现给DOM的方式有关。我希望有某种方法可以解决此问题,或者可能有更好的方法将文本读给不会有此问题的用户。非常感谢任何帮助。Hereisasimplecomponent我在工作代码沙箱中设置以显示我遇到的问题(导航至comp

javascript - 全局修改axios默认 header 时出现问题 - Vue

在ma​​in.jsimportaxiosfrom'axios';axios.defaults.headers.common={'Authorization':'JWT'+Vue.auth.getToken()};axios.defaults.baseURL=process.env.VUE_APP_BASE_URL;//TODO:appendthetrailingslash//AddmodifiedaxiosinstancetoVueprototypesothattobeavailablegloballyviaVueinstanceVue.prototype.$http=axios;到

javascript - Vue.js 中的内联反转 bool 值 @click

对于一个简单的演示,我想反转我在Vue.js实例的数据属性中定义的bool值。我尝试过的:Toggle和Toggle我想避免编写单独的方法或在我的v-on:click="":spanVisible中包含类似的东西?!spanVisible:!spanVisible因为它只是多余的。所以现在我的问题主要是:为什么直接反相不起作用?我还有什么其他的可能性可以让它简短明了?编辑:我现在发现的最短的可能变体是使用spanVisible=!spanVisible,但不确定这是否是可用的最简洁的版本。解决方案:@Sombriks在评论中提出了我找到的最佳解决方案:使用@click="!spanVi

javascript - vue 2、typescript、mocha 和 karma 的代码覆盖率

我们将Vue2与Typescript和webpack3结合使用。Vuex用于状态管理。我们的测试与Karma以及Mocha、Sinon、Expect和Avoriaz一起运行。一切都很好,但我尝试使用Istanbul获得代码覆盖率,以更好地直观表示缺少哪些测试。文件夹结构的小型表示来源组件分享按钮按钮.vue按钮.tsindex.ts...测试单位组件分享按钮按钮.spec.test.tskarma.conf.jskarma.coverage.jsindex.ts...按钮.vuebutton.tsimport{Component,Prop,Vue}from'vue-property-d

javascript - Angular 2 : passing ALL the attributes to the child component

甚至不知道解释这个问题的正确术语所以,想象一下这个场景......有一个form-input-component并捕获一些属性并将其传递给内部的标记所以,这就是标记,希望它是不言自明的......显然在我的ts中@Input()label:string='';@Input()placeholder:string='';然后在View中我有一些东西{{label}}现在,到目前为止一切正常......但是假设我想在它周围添加验证规则......或者添加我没有通过@Input()捕获的其他属性我如何传递来自的任何其他内容?到我的在View中? 最佳答案

javascript - Vue.js + Vuex : How to mutate nested item state?

假设我有以下树:[{name:'asd',is_whatever:true,children:[{name:'asd',is_whatever:false,children:[],},],},],树通过Vuex存储在键“树”下的模块中,并使用以下称为“递归项”的递归组件循环:{{item.name}}onoff现在我想切换项目的属性'is_whatever',所以我附加了一个监听器onoff当我点击它时,它可以工作,但会发出以下信号"Error:[vuex]Donotmutatevuexstorestateoutsidemutationhandlers."[vuex]Donotmuta