Vuejs2 Vue2-如何重新创建组件?
如何在单击按钮后重新创建整个组件 假设我在组件“UserPanel”中,有一个按钮调用“Refresh”。 当我点击那个按钮时,我想销毁这个组件并从头开始创建它。我不习惯使用像“vm.$forceUpdate()”这样的选项,因为它对我的情况没有帮助 有办法吗 我的应用程序代码: App.vue:Vuejs2 Vue2-如何重新创建组件?,vuejs2,Vuejs2,如何在单击按钮后重新创建整个组件 假设我在组件“UserPanel”中,有一个按钮调用“Refresh”。 当我点击那个按钮时,我想销毁这个组件并从头开始创建它。我不习惯使用像“vm.$forceUpdate()”这样的选项,因为它对我的情况没有帮助 有办法吗 我的应用程序代码: App.vue: <template> <div id="main-cont"> <NavBar></NavBar> <ro
<template>
<div id="main-cont">
<NavBar></NavBar>
<router-view></router-view>
</div>
</template>
<script>
import NavBar from './components/TopBar/NavBar';
import {mapActions,mapGetters} from 'vuex';
import axios from 'axios';
export default {
name: 'App',
components: {
NavBar,
},
computed:{
...mapGetters(['isLoggedIn'])
},
methods:{
...mapActions(['loadLanguage','setToken','setUserLogged','loadUserProfile'])
},
created(){
this.loadLanguage();
this.setToken();
let userLoggedIn = document.head.querySelector('meta[name="logged"]').content;
if(userLoggedIn){
this.setUserLogged();
this.loadUserProfile();
}
}
}
</script>
<style scoped>
#main-cont{
height: 100%;
}
</style>
要重新加载的组件。
游戏创建:
<Template>
<div>
<button @click="reloadThisComponent"></button>
</div>
</Template>
<script>
export default{
name: 'GameCreate',
methods:{
reloadThisComponent(){
}
}
}
</script>
导出默认值{
名称:“游戏创建”,
方法:{
重新加载ThisComponent(){
}
}
}
谢谢。编辑(使用新问题详细信息):由于您使用的是view router,并且您的组件已注册为路由,只需将以下内容添加到游戏组件中的重建方法中即可,这应该可以正常工作
this.$router.go(this.$router.currentRoute)
const路由器=新的VueRouter({
模式:“历史”,
})
新Vue({
路由器,
el:“#应用程序”,
方法:{
重载:函数(){
this.$router.go(this.$router.currentRoute)
}
},
创建(){
console.log(“嘿”)
}
})
重新加载
编辑(使用新的问题详细信息):由于您使用的是view router,并且您的组件已注册为路由,只需将以下内容添加到游戏组件中的重建方法中,即可正常工作
this.$router.go(this.$router.currentRoute)
const路由器=新的VueRouter({
模式:“历史”,
})
新Vue({
路由器,
el:“#应用程序”,
方法:{
重载:函数(){
this.$router.go(this.$router.currentRoute)
}
},
创建(){
console.log(“嘿”)
}
})
重新加载
您能否提供有关如何在组件上设置v-if并从该组件内部切换的更多详细信息?我是Vue的新手,只有一个月的经验。谢谢。至少有两种方法。我要编辑我的答案,等几分钟。嗯,我现在还不知道如何在我的项目中实现你的解决方案。我使用“vue路由器”,所以它可能会在实现上有所不同。给我几分钟时间用我的代码更新我的问题。谢谢,好的。我添加了我的代码,所以现在应该一切都清楚了。我刚刚编辑了我的答案。告诉我它是否起作用,或者您是否仍有麻烦:能否提供更多详细信息,说明如何在组件上设置v-if并从该组件内部进行切换?我是Vue的新手,只有一个月的经验。谢谢。至少有两种方法。我要编辑我的答案,等几分钟。嗯,我现在还不知道如何在我的项目中实现你的解决方案。我使用“vue路由器”,所以它可能会在实现上有所不同。给我几分钟时间用我的代码更新我的问题。谢谢,好的。我添加了我的代码,所以现在应该一切都清楚了。我刚刚编辑了我的答案。告诉我它是否起作用,或者你是否仍有麻烦:D