在日常开发中,通常实现页面跳转是通过路由实现的,那么不利用路由能否实现这个功能呢?当然可以,看操作。

我期望实现是这样的效果,点击资料设置 ,右侧会显示资料设置页面,点击修改密码 ,右侧会显示修改密码页面

合理运用v-if完美实现

<template>
  <div class="wrapper">
    <div class="wrapper_content">
      <div class="tab_title">
        <ul>
          <li @click="tab=0" :class="{tab_active:tab==0}">
            资料设置
          </li>
          <li @click="tab=1" :class="{tab_active:tab==1}">
            修改密码
          </li>
        </ul>
      </div>
      <div class="content">
        <div class="tab_content" v-if="tab==0">
          <UserSet /> //这里是组件
        </div>
        <div class="tab_content" v-else-if="tab==1">
          <UserPass />  //这里是组件
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import UserSet from '@/components/user/UserSet.vue';
import UserPass from '@/components/user/UserPass.vue';
export default {
  data() {
    return {
      tab: 0 //默认选中第一个tab
    };
  },
  components: { UserSet, UserPass }
};
</script>
<style scoped>
.wrapper {
  width: 100%;
  height: 100%;
  background-color: white;
  background-position: center;
  display: flex;
  justify-content: center;
  margin-left: 10px;
  margin-top: 10px;
  border-radius: 5px;
  padding: 30px;
  box-shadow: -2px 0px 3px 0px rgba(118, 118, 118, 0.2);
}

.wrapper_content {
  width: 1236px;
  height: 100%;
  display: flex;
  justify-content: flex-start;
}

.tab_title {
  width: 261px;
  height: 100%;
}

.tab_title>ul {
  margin: 0;
  padding: 0;
  list-style: none;
  margin: 0 auto;

  width: 200px;
  height: 100px;
  display: flex;
  flex-direction: column;
}

.tab_title>ul>li {
  flex-grow: 1;
  width: 100%;
  text-align: center;
  height: 50px;
  line-height: 50px;
  display: flex;
  font-size: 14px;
  justify-content: center;
}

.tab_title>ul>li:hover {
  cursor: pointer;
}

.tab_title .tab_active {
  cursor: pointer;
  background: linear-gradient(to right top, #F0F6FF, #F0F6FF);
  color: #333333;
  border: 0;
}

.content {
  margin-left: 1px;
  width: 976px;
  height: 100%;
}

.tab_content {
  width: 100%;
  height: 100%;
}
</style>

这样就可以实现不使用路由,切换页面了

Logo

前往低代码交流专区

更多推荐