Vue组件切换-以登录注册为例【加动画效果】

摘要:
--阻止阻止默认事件。如果v-if为true,则跳转到默认事件并渲染v-if组件,但不输入v-else。v-else--˃登录注册登录注册˂!

方式一v-show或者v-if&v-else,通过控制一个标志位的bool值来实现组件的切换 []

方式一有局限性,就是只能控制两个组件间的切换,因为bool值就true和false两个。

方式二:使用vue官方提供的<component>标签,通过给这个标签绑定is属性实现多个组件之间的切换

<!DOCTYPEhtml>
<htmllang="en">
<head>
<metacharset="UTF-8">
<metaname="viewport"content="width=device-width,initial-scale=1.0">
<title>Document</title>
<scriptsrc="../../js/vue.js"></script>
</head>
<style>
.v-enter,
.v-leave-to{
transform:translateX(150px);
}
/*动画四个阶段*/
.v-enter-active,
.v-leave-active{
opacity:0;
transition:all1sease;
}
</style>
<body>
<divid="app">
<!--prevent阻止默认事件,a就是跳转这个默认事件
v-if为真就渲染v-if这个组件,而不会进入v-else,v-else亦然-->
<ahref=""@click.prevent="flag=true">登录</a>
<ahref=""@click.prevent="flag=false">注册</a>
<loginv-if="flag"></login>
<!--使用v-ifv-else实现组件切换-->
<registerv-else="flag"></register>
</div>

<divid="app2">
<!--点击a传入对应组件的名称-->
<ahref=""@click.prevent="componentname='login'">登录</a>
<ahref=""@click.prevent="componentname='register'">注册</a>
<!--第二种方式实现组件切换,第一种有缺陷,多个vue组件时,无法使用v-if、else-->
<!--使用vue提供的component标签:is="组件名称"提供那个就展示那个-->
</div>
<divid="app3">
<ahref=""@click.prevent="componentname='login'">登录</a>
<ahref=""@click.prevent="componentname='register'">注册</a>
<!--如果组件想要实现一些切换效果,只需要在transition标签中,设定model='out-in{【先出再进】}/in-out【先进再出】'-->
<transitionmodel='out-in'>
<component:is="componentname">
<!--绑定一个变量,变量指向那个组件就展示那个组件,-->
</component>
</transition>
</div>

</body>
<script>
Vue.component('login',{
template:'<h2>这是登录组件</h2>'
})
Vue.component('register',{
template:'<h3>这是注册组件</h2>'
})

letvm=newVue({
el:'#app',
data:{
vmsg:'helloworld',
flag:true,
}
})
letvm2=newVue({
el:'#app2',
data:{
componentname:'login',
}
})
letvm3=newVue({
el:'#app3',
data:{
componentname:'login',
}
})
</script>
</html>

免责声明:文章转载自《Vue组件切换-以登录注册为例【加动画效果】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇网络安全相关证书有哪些?——就实战型看,OSCP、CISP-PTE (国家注册渗透测试工程师)最好eclipse中maven插件上传项目jar包到私服下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue wangeditor3封装

  <script src="http://t.zoukankan.com/wangEditor/3.1.1/wangEditor.min.js"></script> Vue.component('my-wangeditor', { props: ['value'], data() { return...

Vue 多环境配置方法

开发应用时环境有开发环境、测试环境、生产环境等,此时我们需要配置不同的环境,获取不同的apiUrl前缀,避免了频繁手动更改api. 1.安装cross-env插件 cross-env是跨平台设置和使用环境变量的脚本。在大多数Windows命令行中在使用NODE_ENV = production设置环境变量时会报错。同样,Windows和Linux命令如何...

【Vue】09 Webpack Part5 Vue组件化开发

【Vue组件文件打包:Vue-Loader】 复制之前上一个项目 然后在我们的src目录中创建App.vue文件 这个文件就是Vue的模块文件 【建议下载IDEA的Vue.js插件】 Vue的模块分为template、script、style 其实就是代表html + javascript + css这三者 <template> <...

在浏览器上开发GO和Vue!(基于code-server)

在浏览器上开发GO和Vue!(基于code-server) 曾几何时,开发者们都被安装编程环境苦恼,尽管现在很多语言的开发环境已经不难装了,但是如果我们能有一个运行在云端的编译器,那么我们就可以随时随地通过浏览器编写、编译我们的代码啦!! 先看我们最终效果: 完美运行Go程序!下面开始整个环境搭建。 打包好的镜像 配置完成的Go+Vue的编译+Debug...

vue初级学习--使用 vue-resource 请求数据

一、导语   我发现好像我最近几次写文,都是在7号,很恰巧啊~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 二、正文   最近用vue做一个订单管理混合开发APP,但是遇到个问题,使用了vueResource的post请求,后端做了跨域解决方...

vue中 拖动元素边框 改变元素宽度

先上效果图: 如图所示,通过拖动来改变表单的宽度。 但实际上,这边并不是表单的边框,而是一个单独的组件。通过监听鼠标的down,move以及up事件。 我们可以单独的写个组件handle.vue。 <template> <div @mousedown="mouseDown"></div> </templa...