#vue# 【十六】如何从一个页面跳转到另一个页面的指定tab选项卡?

news/2024/7/9 23:58:06 标签: vue, javascript, css, es6, elementui

vuetab_1">#vue#如何从一个页面跳转到另一个页面的指定tab选项卡

需求:
从一个页面点击跳转到另一个页面指定的tab选项卡,如图
当前页面:
在这里插入图片描述
点击“完整时间轴”以及“更多文章”,会跳转到另一个页面,并且会对应好相应的tab页面

tab页面:
在这里插入图片描述
在这里插入图片描述
思路:
(1)在当前页面,我们需要通过绑定点击事件,来获取跳转到tab页面的id值

当前页面:


<div class="time-line" @click="getTime()">
      <p>完整时间轴
      <i class="iconfont iconmore-icon"
      style="font-size:.12rem;
      color: #1A1A1A;
      margin-left:.05rem">
      </i>
      </p>
</div>

 <div class="article-icon" @click="getArticle()" >
       <p>更多文章
       <i class="iconfont iconmore-icon"
       style="font-size: .12rem;
      color: #1A1A1A;
      margin-left: .05rem">
      </i>
      </p>
</div>

<script>
import ArticleTitle from "@/components/child/ArticleTitle"
export default {
    name: "articles",
    components: {ArticleTitle},
    props:['articleList'],
    data () {
        return {
            aTitle:"学习"
        }
    },
    methods:{
        getTime() {
            this.$router.push({ name: 'history', query: {myTab:1} })
        },
        getArticle() {
            this.$router.push({ name: 'history', query: {myTab:2} })
        }
    }
}
//name:‘Title’,这里的title是tab页面的name 

myTab是自定义的,为了获取tab选项卡的下标
(主要是通过query,获取地址id)

</script>

(2)在tab页面,将我们拿到的mytab与tab里面的值,相对应就可以了

tab页面

  <div class="history-tab">
            <div class="tab">
                <div class="tab-item" :class="{'active':onShow}" @click="getTime()" >
                    时间轴
                </div>
                <div class="tab-item" :class="{'active':offShow}" @click="getList()" >
                    文章
                </div>
            </div>
        </div>
export default {
    name: "history",
    data () {
        return {
            linklist: [],
            currentPage3: 1,
            totalPage:0,
            totalNumber:0,
            title:'',
            onShow:true,
            offShow:false
        }
     },

//主要是看这里!!!
让一个变量来接收我们拿到的myTab的ID
然后进行判断,当tab全等于1的时候,就显示当前页面,否则就显示另一个tab页面
(this.getTime()、this.getList()是tab页面内容的显示以及隐藏,在下面有进行定义方法,所以可以直接使用)

当tab里面的值比较多的时候,我们可以所以索引的方式来获取
当tab等于这个索引的时候,就显示这个id的内容
    mounted() {
        let tab = parseInt(this.$route.query.myTab);
        if (tab === 1){
            this.getTime()
        }else{
            this.getList()
        }
    },


    created() {
        this.getInfo(1)
    },
    methods:{
        changePage(i) {
            this.getInfo(i)
        },
        getInfo(i) {
            articleIndex({
                limit_rows:15,
                page: i
            }).then(res => {
                let myData = res.data;
                this.linklist = myData.list;
                this.totalPage = myData.total_page;
                this.totalNumber = myData.total_number
            })
        },
        toDetail(id){
            this.$router.push(`/articleDetails/${id}`) ;
        },
        getTime() {
            this.onShow = true;
            this.offShow = false;
        },
        getList() {
            this.onShow = false;
            this.offShow = true;
        }
    }
}

</script>


http://www.niftyadmin.cn/n/615259.html

相关文章

#vue# 使用JS进行状态判断,并追加类名样式

#vue# 使用JS进行状态判断&#xff0c;并追加类名样式 需求&#xff1a;在很多情况下&#xff0c;我们需要做切换状态就会显示不同的样式 效果&#xff1a;例如像下面的图&#xff08;按钮&#xff09;一样&#xff0c;不同的状态下&#xff0c;方框里显示不同的背景颜色 思路…

#vue# v-for渲染出导航栏

需求&#xff1a;制作一个导航栏 效果&#xff1a; 点击前&#xff1a; 点击后&#xff1a; 后端接口 思路&#xff1a; 在实际的开发里&#xff0c;一般不会写死导航栏的内容&#xff0c;然后为了更加动态以及高效修改导航栏的情况下&#xff0c;我们最好是用v-for进行渲染…

#vue# 纯手写“页面数据为空时,显示空状态图片”

需求&#xff1a;在我们的页面&#xff0c;没有显示任何数据时&#xff0c;显示图片以及提示语 效果&#xff1a; 后端接口数据 思路&#xff1a; &#xff08;1&#xff09;只需要在页面里面加入一个div&#xff0c;当页面里面的数据为0时&#xff0c;就用v-show展示出来&am…

#vue# 实现计算器功能

需求&#xff1a;用vue实现一个简易的计算器 效果图&#xff1a; 思路&#xff1a; &#xff08;1&#xff09;首先将这个简易的计算器排版出来&#xff0c;主要是用到input、button、 select option&#xff08;下拉菜单&#xff09; 这些标签&#xff0c;再进行写相应的c…

#vue# js正则表达式——实现手机号校验效果

需求&#xff1a;输入错误的手机号&#xff0c;会有提示语&#xff0c;正确的手机号码会有正确的图标 效果&#xff1a; 思路&#xff1a; &#xff08;1&#xff09;排版&#xff08;不细讲&#xff09;&#xff0c;使用input 、button、span等标签&#xff0c;排版里面一个…

#vue# js实现正则表达式验证邮箱

需求&#xff1a;个人中心注册&#xff0c;输入邮箱&#xff0c;若有误&#xff0c;显示错误信息 效果&#xff1a; 思路&#xff1a; 除了邮箱的正则表达式为 let reg /^([a-zA-Z]|[0-9])(\w|\-)[a-zA-Z0-9]\.([a-zA-Z]{2,4})$/;if(!reg.test(this.变量名)) {} 思路与#vue…

#vue# mousedown、mouseup事件,JS实现密码框小眼睛显示与隐藏

需求&#xff1a; 密码框右侧小眼睛&#xff0c; 鼠标按下鼠标按键&#xff08;左、右键均可&#xff09;就显示出密码&#xff0c; 鼠标松开鼠标按键&#xff08;左、右键均可&#xff09;密码就隐藏 思路&#xff1a; &#xff08;1&#xff09;首先就是排版了&#xff08…

#前端# 万字总结!前端项目化超详细方法及思路!

#前端# 万字总结&#xff01;前端整个项目超详细方法及思路&#xff01; 文章目录#前端# 万字总结&#xff01;前端整个项目超详细方法及思路&#xff01;第一部分&#xff1a;web/pc端一、项目开始前的准备工作1、vue-cli搭建开发环境2、新建vue项目文件3、vue项目目录解析&am…