067——VUE中vue-router之使用transition設置酷炫的路由組件過渡動畫效果


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue-router之使用transition設置酷炫的路由組件過渡動畫效果</title>
    <script src="vue.js"></script>
    <script src="node_modules/vue-router/dist/vue-router.js"></script>
    <link rel="stylesheet" href="animate.css">
</head>
<body>
<div id="demo">
    <router-view></router-view>
</div>
<script type="text/x-template" id="home">
    <transition enter-active-class="animated rotateIn">
        <div>
            <li v-for="v in news">

                <a href="#" @click.prevent="go(v.id)">{{v.title}}</a>
            </li>
        </div>
    </transition>
</script>
<script type="text/x-template" id="content">
    <transition enter-active-class="animated slideInDown">
        <div>
            <h1>{{field.title}}--{{field.id}}</h1>
            <p>
                {{field.content}}
            </p>
            <a href="" @click.prevent="back()">返回首頁</a>
        </div>
    </transition>
</script>
<script>
    const notFound = {
        template: '<h1>NotFound</h1>'
    }
    var data = [
        {id: 1, title: "php課程", content: "php是個比較牛的技術"},
        {id: 2, title: "java課程", content: "java是個比較牛的技術"},
        {id: 3, title: "pathon課程", content: "pathon是個比較牛的技術"}
    ]
    const home = {
        template: "#home",
        data() {
            return {
                news: data
            }
        },
        methods: {
            go(id) {
                //var url='/content/'+id; //url第一種寫法
                //var url={name:'content',params:{id:id}};//url第二種寫法
                //this.$router.replace(url);//replace()替換歷史記錄中的跳轉:

                var url = {'path': '/content/' + id};//跳轉到詳情頁  //url第三種寫法
                this.$router.push(url);
            }
        }
    }
    const content = {
        template: "#content",
        data() {
            return {
                field: {}
            }
        },
        mounted() {
            var id = this.$route.params.id;
            for (let k = 0; k < data.length; k++) {
                if (data[k].id == id) {
                    this.field = data[k];
                }
            }
        },
        methods: {
            back() {
                this.$router.go(-1);
            }
        }
    }
    let routes = [
        {path: '/', component: home},
        {path: '/content/:id', component: content, name: "content"},
        {path: '/content/3', alias: ['/about']},
        {path: '*', component: notFound}

    ];
    //把組件交給路由器:
    let router = new VueRouter({routes});
    new Vue({
        el: "#demo",
        router
    });
</script>
</body>
</html>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM