关于Vue - component 属性is的一点使用方法心得

官方对component 的属性 is的解释: 有的时候,在不同组件之间进行动态切换是非常有用的,可以通过 Vue 的 <component> 元素加一个特殊的 is attribute 来实现、

拿我们自己话来说就是  多个组件使用同一个挂载点,并动态切换,并且IS属性就是这个组件的“name”值很好理解。

话说这个属性其实挺实用的,比如说我们的创建某个活动之类,需要按步骤创建3步,为了代码的简洁,首先我们想到肯定用组件方式来进行每一步管理,每一步独立起来,方便管理。可读性也高。下面我就按照我工作中代码复述一片。PS: 我用的UI库是iview

一、没有用component中is的写法,是不是很繁琐?

只有通过v-if来控制每一步的组件。(其他自定义属性就不多说了,是业务属性)

 

二、通过component 组件形式来书写

子组件的prop值,同样可以通过<component ></component >这个组件来传递。相当于是每个子组件的公共部分。

我这里逻辑是只需要监控这个nowCurrent这个值 ,通过子组件里changeStep回调来改变nowCurrent值,从而切换组件。 相比于第一种方式是不是很简洁?

 

 

 

 

 

 

PS:  你用这个模式可能会出现这个错误

[Vue warn]: You are using the runtime-only build of Vue where the template compiler is not available

这是由于vue有两种模式构建 ,在初始化项目配置的时候,有两个运行环境配置的版本:Compiler 版本、Runtime 版本。

如果你是vue-cli 是2.x版本  可以在配置项加一段话即可,如下图:

vue$: "vue/dist/vue.esm.js"

 

posted @ 2020-11-17 17:33  风儿dong~~  阅读(20668)  评论(0编辑  收藏  举报