我在vuejs中有一个小组件用于文件上传(使用axios)。我正在尝试从文件上传中发出响应,如下所示:
methods: {
...
upload (){
axios.put(URL).then(response => {
console.log('response', response)
this.$emit('uploaded', response)
}).catch(error => {
})
}
}
Run Code Online (Sandbox Code Playgroud)
但是在这段代码中,即使console.log()响应显示正常,emit也显示了undefined。我认为在响应准备好之前就已经调用了发射器。
无论如何,有使用async / await解决此问题的方法吗?
我有一个函数,可以说生成一个用于生成令牌的随机字符串。我有这个功能,我methods:{}在我的 div 中使用它没有任何问题。
但是我试图将这个函数放在它自己的单独文件中,以便我可以导入它以备将来使用,所以我将一个functions.js文件放入我的文件中,src如下所示:
// /src/functions.js
export default {
// generate tokes
tokenGenerator () { ... }
}
Run Code Online (Sandbox Code Playgroud)
在我中,src/components/foo.vue我正在导入此文件(导入没有问题)
<template>
<div> {{ tokenGenerator }} </div>
</template>
<script>
import tokenGenerator from '../../functions'
export default {
data() {
return ;
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
这应该工作,但它没有。导入不是问题,而是其他问题.. 控制台错误显示它找不到函数 tokenGenerator
好吧,问题很模糊,但我有一个代码如下:
<template>
<div>
<p v-if="users" v-for="user in users"> {{ user.name}} </p>
<p v-else> No users found</p>
</div>
</template>
<script>
export default {
data() {
return {
users: null
}
},
created() {
var that = this
axios.get('...').then(response => {
that.users = response.data
}).catch(error => { .... })
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
因此,actuall脚本没有问题,它加载用户并正确显示它.但是,我总是看到No users founds之前vuejs加载用户.我不想看到那些消息,除非users是,null但似乎vue并不等待它显示之前是真的v-else.
有没有适当的方法来处理这个问题
如果两个人在 github 上的同一个存储库和同一个分支 master 上工作。然后说 A 将他们的更改推送给 master,而我作为 B,我如何在调用后检查更改的文件git fetch?
如果我做:
git fetch
git merge master origin/master
Run Code Online (Sandbox Code Playgroud)
我得到这一行:
aa@DESKTOP-KQQ0A3T MINGW64 ~/..
$ git merge master origin/master
Merge made by the 'recursive' strategy.
src/main.js | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
Run Code Online (Sandbox Code Playgroud)
我喜欢src/main.js以这种方式描述差异的方式,但该信息仅在我合并时出现,所以我的问题是,在进行合并之前,我应该使用什么命令来查看有关差异的相同信息?
我正在学习vuejs,我无法理解为什么需要这个名字.
<template>
</template>
<script>
export default {
name: 'NotFound'
}
</script>
<style>
</style>
Run Code Online (Sandbox Code Playgroud)
例如,您可以在此文件中看到上述代码的来源https://github.com/misterGF/CoPilot/blob/master/src/components/404.vue 这个名称什么都不做,但为什么我们需要它.
我试图限制用户可以在3-6之间输入的位数.
出于某种原因,我找不到如何做到这一点.
这是我必须强制用户添加三位数的代码
<input type="text" name='account-field-3' v-validate="'required|digits:3'" placeholder="6" class="form-control" >
Run Code Online (Sandbox Code Playgroud)
但我需要的是3-6之间.
我将对象传递给我的组件为:
<foo :ob='object'></foo>
Run Code Online (Sandbox Code Playgroud)
在我的组件中,我有以下声明:
props: {
ob: {
type: Object,
required: false,
default: {}
}
}
Run Code Online (Sandbox Code Playgroud)
通常,期望传递的对象是这样的:
{
bar: [],
tar: {
a: false,
}
}
Run Code Online (Sandbox Code Playgroud)
现在,如何在道具中确保传递的对象相似。我不需要检查值,我只需要知道它包含对象键,bar,tar和tar内部的属性,即:a
我有一个观察者调用类似的方法
watch: {
'list.items' (n, o) {
this.doSomething()
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,每当页面加载时,我都会将新值推入list.items:
methods: {
fetchLists(){
axios.get('/').then(
res => {
this.items.push(res.data)
};
}
}
Run Code Online (Sandbox Code Playgroud)
我在创建中调用 fetchLists 为:
created () {
this.fetchLists()
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是this.doSomething()当 list.items 更改后页面加载时观察者调用,但我不想观察者只在初始页面加载后调用 doSomething
我在我的应用程序中都有标准的then / catch axios代码,一个简单的例子就是这样。
axios.get('/').then( r => {} ).catch( e => {} )
Run Code Online (Sandbox Code Playgroud)
上面的问题是我必须复制该catch()块以处理可能在我的应用程序中调用的任何潜在错误,而我的问题是,是否可以采取任何措施从入口点(相对于全局)捕获错误到处使用捕获。
我正在从axios端或vue寻找解决方案,因为我的应用是使用vue构建的
我有一份食品和饮料清单,我想从这样的文件中导出:
// example.js
var foods = ['', ''];
var drinks = ['', ''];
Run Code Online (Sandbox Code Playgroud)
我想导出那些,所以我可以导入它们:
import {foods, drinks} from './example.js'
console.log(foods); // ['', '']
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何在第一个示例中导出它们以在第二个示例中获取它们
通常我从一个文件导出一个对象,但是有效,但多个我不确定
vuejs2 ×7
javascript ×5
vue.js ×5
ecmascript-6 ×2
async-await ×1
axios ×1
git ×1
git-fetch ×1
git-merge ×1
node.js ×1
promise ×1
try-catch ×1
vee-validate ×1