天天看點

前後端分離

前後端分離:

前後端分離就是将一個應用的前端代碼和後端代碼分開寫,為什麼要這樣做?

如果不适用前後端分離的方式,會有哪些問題?

傳統的java web開發中,前端使用jsp開發,jsp代碼不是有後端開發者來獨立完成的。

前端=》html靜态頁面=》後端=》jsp

這種開發方式效率極低,可以使用前後端分離的方式進行開發,就可以完美的解決這些問題。

前端隻需要獨立編寫用戶端代碼,後端也隻需要獨立編寫服務端代碼,提供資料接口即可

前端通過ajax請求來通路後端的資料接口,将model展示到view中即可。

前後端開發者隻需要提前約定好接口文檔(url,參數,資料類型。。。),然後獨立開發即可。前端可以先造一些假資料進行測試,完全不需要依賴與後端,後端同理。最後完成前後端內建即可。真正實作了前後端應用的解耦合。極大的提升了開發效率。

單體==》前端應用+後端應用

前端應用:負責資料展示和使用者互動

後端應用:負責提供資料處理接口

前端html--》ajax---》restful後端資料接口。

傳統的單體應用:

前後端分離的結構:

前後端分離就是将一個單體應用拆分成兩個獨立的英語,前端應用和後端停用一json格式進行互動。

實作技術:

springboot +vue

使用springboot進行後端應用開發,使用vue進行前端應用開發。

vue + element ui

vue內建element ui

element ui背景管理系統主要的标簽:

1.el-container:建構整個頁面架構

2.el-aside:建構左側菜單

3.el-menu:左側菜單内容,常用屬性:

:default-openeds:預設展開的菜單,通過菜單的index值來關聯。

:default-active:預設選中的菜單,通過菜單的index值來關聯。

4.el-submenu:可展開的菜單,常用屬性:

index:菜單的下标,文本類型,不能是數值類型。

5.template:對應el-submenu的菜單名。

6.i:設定菜單圖示,通過class屬性設定:

el-icon-messae

el-icon-menu

el-icon-setting

7.el-menu-item:菜單的子節點,不可再展開,常用屬性:

index:菜單的下表,文本類型,不能是數值類型。

vue router來動态建構左側菜單

導航1

     頁面1

     頁面2

導航2

     頁面3

     頁面4

{

     path: "/",

     name: "導航1",

     component: app,

     children:[

            {

                   path: "/pageone",

                   name: "頁面1",

                   component: pageone

            },

                   path: "/pagetwo",

                   name: "頁面2",

                   component: pagetwo

            }

       ]

},

       path: "/navigation",

       name:"導航2",

       component:app,

       children: [

                 path: "/pagethree",

                 name: "頁面3",

                 component: pagethree

                  path: "/pagefour",

                  name:"頁面4",

                  component: pagefour

     ]

}

menu與router的綁定

1.<el-menu>添加router屬性。

2.在頁面中添加<router-view>标簽,它是一個容器,動态渲染你選擇的router。

3.<el-menu-item>标簽的index值就是要跳轉的router。

element ui 表單資料校驗

定義rules對象,在rules對象中設定表單各個選項的校驗規則

rules: {

     name: [

           {required: true, message: '請輸入活動名稱', trigger: 'blur'},

           {min: 3, max: 5, message: '長度在 3 到 5 個字元', trigger: 'blur'}

     ],

     region: [

           {required: true, message: '請選擇活動區域', trigger: 'change'}

     date1:

     [

     {type: 'date', required: true, message: '請選擇日期', trigger: 'change'}

      ],

      date2: [

           {type: 'date', required: true, message: '請選擇時間', trigger: 'change'}

      type: [

           {type: 'array', required: true, message: '請至少選擇一個活動性質', trigger: 'change'}

      resource: [

           {required: true, message: '請選擇活動資源', trigger: 'change'}

      desc:

           {required: true, message: '請填寫活動形式', trigger: 'blur'}

required: true, 是否為必填項

message: '請輸入活動名稱',提示資訊

trigger: 'blur',觸發事件

繼續閱讀