热门关键字:
jquery > jquery教程 > html5 > 组件切换方式(Vue.js)

组件切换方式(Vue.js)

429
作者:管理员
发布时间:2020/3/19 10:46:20
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=1067

  这里,我用一个注册登录两组件的切换实例来演示:

  切换方式一

  <!DOCTYPEhtml>

  <htmllang="zh-CN">

  <head>

  <metacharset="UTF-8"/>

  <title>独秀不爱秀</title>

  </head>

  <body>

  <divid="app">

  <ahref="#"@click.prevent="flag=true">登录</a>

  <ahref="#"@click.prevent="flag=false">注册</a>

  <!--默认显示登录组件-->

  <loginv-if="flag"></login>

  <registerv-else="flag"></register>

  </div>

  <scriptsrc="./lib/vue-2.4.0.js"></script>

  <scripttype="text/javascript">

  Vue.component('login',{

  template:'<h3>登录组件</h3>'

  });

  Vue.component('register',{

  template:'<h3>注册组件</h3>'

  });

  constvm=newVue({

  el:'#app',

  data:{

  flag:true

  },

  });

  </script>

  </body>

  </html>

  这个方式唯一的缺陷就是只能在两个组件之前切换,当要求需要三个及三个以上的组件切换的时候,这就不行了(原因是flag只有true和false两个值),这就要要使用方式二了。

  切换方式二

  这里,我们需要学到一个Vue官方提供的元素component。

  <!DOCTYPEhtml>

  <htmllang="zh-CN">

  <head>

  <metacharset="UTF-8"/>

  <title>独秀不爱秀</title>

  </head>

  <body>

  <divid="app">

  <ahref="#"@click.prevent="comName='login'">登录</a>

  <ahref="#"@click.prevent="comName='register'">注册</a>

  <!--

  Vue提供的component来展示对应名称的组件

  component是一个占位符

  :is属性指定组件名称

  -->

  <component:is="comName"></component>

  </div>

  <scriptsrc="./lib/vue-2.4.0.js"></script>

  <scripttype="text/javascript">

  //组件名称是字符串

  Vue.component('login',{

  template:'<h3>登录组件</h3>'

  });

  Vue.component('register',{

  template:'<h3>注册组件</h3>'

  });

  constvm=newVue({

  el:'#app',

  data:{

  comName:'login'//当前component中的:is绑定的组件名称

  },

  });

  </script>

  </body>

  </html>

  现在,我们在添加一个退出组件(这是为了证明第二种组件切换方式的好处)

  <!DOCTYPEhtml>

  <htmllang="zh-CN">

  <head>

  <metacharset="UTF-8"/>

  <title>独秀不爱秀</title>

  </head>

  <body>

  <divid="app">

  <ahref="#"@click.prevent="comName='login'">登录</a>

  <ahref="#"@click.prevent="comName='register'">注册</a>

  <ahref="#"@click.prevent="comName='out'">退出</a>

  <!--

  Vue提供的component来展示对应名称的组件

  component是一个占位符

  :is属性指定组件名称

  -->

  <component:is="comName"></component>

  </div>

  <scriptsrc="./lib/vue-2.4.0.js"></script>

  <scripttype="text/javascript">

  //组件名称是字符串

  Vue.component('login',{

  template:'<h3>登录组件</h3>'

  });

  Vue.component('register',{

  template:'<h3>注册组件</h3>'

  });

  Vue.component('out',{

  template:'<h3>退出组件</h3>'

  });

  constvm=newVue({

  el:'#app',

  data:{

  //默认显示登录组件

  comName:'login'//当前component中的:is绑定的组件名称

  },

  });

  </script>

  </body>

  </html>

  切换成功。





如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:html
友荐云推荐