【发布时间】:2020-06-27 15:03:45
【问题描述】:
我在模板中有两个组件,第一个是过滤器,第二个是向 API 发出请求。我想知道在提交第一个(过滤器)后是否可以刷新第二个组件(请求)的值
在主页面请求有默认值,如果用户使用过滤器,请求必须更改为用户插入的值
<template>
<app-filter></app-filter>
<app-request :time="time" :keyword=keyword />
</template>
<script>
export default {
components:{
"app-request": Request,
"app-filter": Filter
},
data() {
return {
keyword: "Hello",
time:"today",
}
}
}
</script>
过滤器会改变关键字和时间的默认值
<template>
<form @submit.prevent="submit">
<input v-model="keyword" class="input" type="text">
<input v-model="time" class="input" type="text">
<button type="submit">send</button>
</form>
</template>
<script>
export default {
data() {
return {
time:"",
keyword: "",
}
},
methods:{
submit(){
//what i do here to change the value in request?
}
},
}
</script>
请求将显示来自 API 的值,请求页面将从主页面接收道具
<template>
<div :time="time"></div>
</template>
<script>
export default {
props:[
'keywords',
'time',
],
create(){
//make a request to api, here is ok
}
}
</script>
过滤器组件提交表单后如何刷新主页?
【问题讨论】:
-
在提交回调中使用
window.location.reload()。假设它是一个 fetch/axios 调用,你可以把它放在你的 promise 的then回调中。话虽如此,您不必刷新页面来更新其他组件的值。最好通过您的商店使用VueX 之类的东西来控制这种行为。或者,我认为你的情况很简单,你可以做this.time = apiCallResponse.time或任何你的结构。 -
这是 vue.你不刷新页面,你改变数据。
-
如何更改发送给请求的数据?因为我是在创建中做的
标签: javascript vue.js