Javascript 在spa项目中重新加载vue组件
所以我正在用vue js创建spa应用程序,我有这些路线Javascript 在spa项目中重新加载vue组件,javascript,vue.js,Javascript,Vue.js,所以我正在用vue js创建spa应用程序,我有这些路线 { path: '/artikel/create',name: 'artikelCreate', components: { default: artikel_form, 'header': header} }, { path: '/artikel/edit/:id',name: 'artikelEdit', components: { default: artikel_form, 'header': header}, meta: { m
{ path: '/artikel/create',name: 'artikelCreate', components: { default: artikel_form, 'header': header} },
{ path: '/artikel/edit/:id',name: 'artikelEdit', components: { default: artikel_form, 'header': header}, meta: { mode:'edit' } },
有一个artikelCreate
路由可以从artikel\u表单
组件创建空白表单,还有一个artikelEdit
路由可以根据:id
创建包含数据的表单。它们都使用相同的组件,即artikel_形式
我就是这样创建的,所以我不需要创建两个几乎相同的表单组件。我只需要使用if(this.$route.meta.mode==='edit')
来确定这个路由是artikelEdit
还是artikelecreate
,并根据这些信息执行一些方法
它工作得很好,但通过执行此步骤,我会遇到一些问题:
artikelEdit
route,它将在每个输入和其他内容的数据旁边创建artikel_表单
组件artikelEdit
路径访问或导航到artikecreate
路径,如果我单击/导航到这些路径,它应该会创建一个空的artikel\u表单
artikel_表单
它仍然显示artikel_表单
自artikelEdit
路线v-model
并清洁那些v-model
,但有时内部有些组件需要额外的步骤,而不仅仅是清洁v-model
,该组件绑定到表单上的输入文本。而且它也容易出错,因为我们需要指定每一个
在vue中调用重载、刷新或重新创建组件有什么优雅的方法吗?这是因为vue认为它是同一个组件(相同的对象引用),所以即使路由更改,组件仍然指向相同的引用,所以vue不会重新加载组件
因此,我们需要克隆artikel_形式,以便它们具有不同的引用。
我们可以使用
您好,要对同一组件中的参数更改做出反应,只需查看$route
对象即可。你可以去图书馆看看
{
path: '/artikel/create',
name: 'artikelCreate',
components: {
default: {...artikel_form},
'header': header
}
},
{
path: '/artikel/edit/:id',
name: 'artikelEdit',
components: {
default: {...artikel_form},
'header': header
},
meta: {
mode:'edit'
}
},