1. 程式人生 > 其它 >路由巢狀

路由巢狀

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--開發環境-->
    <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue-router/dist/vue-router.js"></script>
</head>
<body>
<div id="app">
    <!--
       1、建立vue路由:為每一個元件分配一個url
       
2、在網頁上挖個坑,用對應的元件來填這個坑 --> <router-view></router-view> </div> <!--建立登入元件的模板--> <template id="loginTemplate"> <div> <h1>登入</h1> <form> <p>帳號:<input type="text" v-model="account"></p> <p>密碼:<input type="text" v-model="password"></p> <button type="button" @click="btnLogin">登入</button> </form> </div> </template> <!--註冊元件--> <template id="regTemplate"> <div> <h1>註冊</h1> <form> <p>帳號:<input type="text" v-model="account"></p> <p>密碼:<input type="text" v-model="password"></p> <p>確認密碼:<input type="text" v-model="zpassword"></p> <button type="button">註冊</button> </form> </div> </template> <!--使用者父元件--> <template id="userTemplate"> <!--要顯示列表,新增 修改--> <router-view></router-view> </template> <!--列表--> <template id="userItemTemplate"> <div> <h1>使用者列表元件</h1> <button type="button" @click="btnAdd()">新增</button> <button type="button" @click="btnUpdate()">修改</button> <button type="button" @click="btnLogin()">登入</button> </div> </template> <!--使用者新增--> <template id="userAddTemplate"> <h1>使用者新增元件</h1> </template> <!--使用者修改--> <template id="userUpdateTemplate"> <h1>使用者修改元件</h1> </template> <script> //
登入子元件 const loginform = { template: '#loginTemplate', data(){ return{ account:'', password:'' } },methods:{ btnLogin(){//登入按鈕觸發的方法 //跳轉並傳參 this.$router.push("/user") } } }
//登入子元件 const regform = { template: '#regTemplate', data(){ return{ account:'', password:'', zpassword:'' } },methods:{ } } //使用者主元件 const userform = { template: '#userTemplate', data(){ return{ account:'', //接收登入元件給我的值 pwd:'', } } } //使用者列表元件 const useritemform = { template: '#userItemTemplate', methods:{ btnAdd(){ this.$router.push("/useradd"); }, btnUpdate(){ this.$router.push("/userupdate"); }, btnLogin(){ this.$router.push("/login"); } } } //使用者新增元件 const useraddiform = { template: '#userAddTemplate', } //修改元件 const userupdateiform = { template: '#userUpdateTemplate', } // 建立 VueRouter 物件 const router = new VueRouter({ // 編寫路由規則 routes: [ {path:'/',redirect:'/login'},//預設元件 redirect:重定向到指定元件 { path: "/login", component: loginform },//component:哪個元件,元件名 { path: "/register", component: regform },//註冊元件 { path: "/user", component: userform, children:[ {path:'/',redirect:'/useritem'}, { path: "/useritem", component: useritemform}, { path: "/useradd", component: useraddiform }, { path: "/userupdate", component: userupdateiform }, ] }//使用者主元件 ] }) new Vue({ el: "#app", data() { return { } },router //註冊路由物件 }) </script> </body> </html>