基于cdn方式的vue+element-ui的单页面架构

一、下载vue2.x,下载element-ui.js以及css

二、html文件

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <link rel="stylesheet" type="text/css" href="css/element-ui.css"/>
        <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
        <script src="js/element-ui.js" type="text/javascript" charset="utf-8"></script>
        <style type="text/css">
            body{
                margin:0;
                padding:0;
            }
            .el-container{
                max-width:1200px;
                margin:0 auto;
            }
            .el-menu-item{
                width:25%;
                text-align:center;
                font-size:1.075rem;
            }
        </style>
    </head>
    <body>
        <div >
            <el-container>
              <el-header>
                  <el-menu :default-active="common.activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect">
                    <el-menu-item index="0">section1</el-menu-item>
                    <el-menu-item index="1">section2</el-menu-item>
                    <el-menu-item index="2">section3</el-menu-item>
                    <el-menu-item index="3">section4</el-menu-item>
                  </el-menu>
              </el-header>
              <el-main>
                  <section v-show="common.activeIndex=='0'">main1</section>
                  <section v-show="common.activeIndex=='1'">main2</section>
                  <section v-show="common.activeIndex=='2'">main3</section>
                  <section v-show="common.activeIndex=='3'">main4</section>
              </el-main>
            </el-container>

        </div>
        
        <script type="text/javascript">
            ;(function(){
                new Vue({
                    el:"#app",
                    data(){
                        return {
                            common:{
                                activeIndex:"0",
                            },
                            main1:{
                                
                            },
                            main2:{
                                
                            },
                            main3:{
                                
                            },
                            main4:{
                                
                            },
                        }
                    },
                    methods:{
                        handleSelect(key, keyPath) {
                            const hash = ["section1","section2","section3","section4"];
                            window.location.hash = hash[parseInt(key)];
                            this.common.activeIndex = key;
                        }
                    },
                    created() {
                        let hash = window.location.hash;
                        const hashArr = ["#section1","#section2","#section3","#section4"];
                        let hashIndex = hashArr.indexOf(hash);
                        this.common.activeIndex = (hashIndex==-1?0:hashIndex).toString();
                    },
                    mounted() {
                        
                    }
                })
            })();
        </script>
    </body>
</html>