vue中组件的切换方式
方式一
使用v-if和v-else实现切换
- 定义组件
Vue.component('myTag1',Vue.extend({
template:'<p>tag1</p>'
}))
Vue.component('myTag2',Vue.extend({
template:'<p>tag2</p>'
}))
- 增加flag
var vm =new Vue({
el:'app'
data:{
flag:true
}
})
- 页面内使用
<div id="app">
<a href="" @click.prevent="flag=true">tag1</a>
<a href="" @click.prevent="flag=false">tag2</a>
<my-tag1 v-if="flag"></my-tag1>
<my-tag2 v-else="flag"></my-tag2>
</div>
方式二
使用vue提供的component标签实现切换
适合多个组件的切换
- 定义组件(和方式一相同)
Vue.component('myTag1',Vue.extend({
template:'<p>tag1</p>'
}))
Vue.component('myTag2',Vue.extend({
template:'<p>tag2</p>'
}))
- 增加componentId
var vm =new Vue({
el:'app'
data:{
componentId:'my-tag1'
}
})
- 页面内使用
<div id="app">
<a href="" @click.prevent="componentId='my-tag1'">tag1</a>
<a href="" @click.prevent="componentId='my-tag2'">tag2</a>
<component :is="componentId"></component>
</div>
切换组件的动画
- 用transition标签包裹切换的组件
<a href="" @click.prevent="componentId='my-tag1'">tag1</a>
<a href="" @click.prevent="componentId='my-tag2'">tag2</a>
<transition mode=out-in>
<!--mode是设置动画的模式,out-in是指上一个动画完全出场完了,下一个动画才能入场,还有in-out,下一个动画入场了,上一个动画才能出场 -->
<component :is="componentId"></component>
</transition>
- 定义样式
v-enter,v-leave-to{//样式}
.v-enter-active,v-leave-active{//样式}
|你知道的越多,不知道的越多。 |如果本文章内容有问题,请直接评论或者私信我。如果觉得写的还不错的话,点个赞也是对我的支持哦。 |未经允许,不得转载!|微信搜【程序员徐小白】,关注即可第一时间阅读最新文章。回复【面试题】有我准备的50道高频校招面试题,以及各种学习资料。

浙公网安备 33010602011771号