第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

用vue-router實(shí)現(xiàn)二級(jí)菜單內(nèi)容轉(zhuǎn)換

標(biāo)簽:
Vue.js

二级菜单导航是一种很普遍的功能,一般网页都会有这个功能。如果是平常的做法就是改变url,跳到相应的页面;还有一种就是frame。
如果用vue的话,可以用vue-router改变<router-view>里面的组件,这样就能做到不刷新页面都能跳到相应“页面”。其实url地址还是变了,但是他没有刷新页面其他位置的内容,只是改变了<router-view>里面的组件,渲染了新的组件。
在线demo:http://runjs.cn/code/9th3cgxo

html

使用 Vue.js 时,我们就已经把组件组合成一个应用了,当你要把 vue-router 加进来,只需要配置组件和路由映射,然后告诉 vue-router 在哪里渲染它们。

<div id="app">
    <div class="leftBox">
        <!-- 使用 router-link 组件来导航. -->
        <!-- 通过传入 `to` 属性指定链接. -->
        <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
        <ul>
            <li><router-link to="/" actived>首页</router-link></li>
            <li><router-link to="/article">文章</router-link></li>
            <li><router-link to="/picture">图片</router-link></li>
            <li><router-link to="/music">音乐</router-link></li>
        </ul>
    </div>
    <div class="rightBox">
         <!-- 路由出口 -->
          <!-- 路由匹配到的组件将渲染在这里 -->
        <router-view></router-view>
    </div>
</div>
js

定义路由。每个路由应该映射一个组件。 其中"component" 可以是组件等。 创建和挂载根实例。记得要通过 router 配置参数注入路由,从而让整个应用都有路由功能

var Home = {template: '<div>home</div>'}

var router = new VueRouter({
    routes: [
        {path: '/', component: Home},
        {path: '/picture', component: Picture},
        {path: '/music', component: Music},
        {path: '/article', component: Artlist},
        {path: '/article/:id', component: Article}
    ]
})
new Vue({
    el: "#app",
    router: router
})

切换到了文章部分时,我又弄了个文章列表,点击文章标题才进入文章内容。

  • 这里我写死了数据,实际可以通过ajax拿到数据赋值。
  • 我模拟了loading...,根据数据驱动的思维,通过v-if="loading"来判断这个loading是否出现。
  • 动画切换记得要指定不同的key,不然是没有效果的。
  • 创建和改变路由的时候,都要通过传递url的参数去一个方法拿到数据,这里就要createdwatch '$route'
  • 拿url参数是通过$route.params$route.query等,具体看教程
  • 返回上一级是用router.go(-1),相当于按退回按钮
var Article = {
    template: '<div class="post">\
        <div class="loading" v-if="loading">loading.....</div>\
        <transition name="slide">\
            <div v-if="post" class="content" :key="post.id">\
            <button @click="back">返回</button>\
                <p>{{post.title}}</p>\
                <P>{{post.body}}</P>\
            </div>\
        </transition>\
    </div>',
    data: function() {
        return {
            loading: false,
            error: null,
            post: null
        }
    },
    created:function() {
        this.fetchData();
    },
    watch: {
        '$route': 'fetchData'
    },
    methods: {
        fetchData:function () {
            this.error = this.post = null;
            this.loading = true;
            getPost(this.$route.params.id,(err,post) => {
                this.loading = false;
                if(err) {
                    this.error = err.toString();
                }else {
                    this.post = post
                }
            })
        },
        back: function() {
            router.go(-1);
        }
    }
}
點(diǎn)擊查看更多內(nèi)容
7人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消