本文基於ext-6.0.0
一、關於border布局
在用ext做項目的過程中,最常用到的一種布局就是border布局,現在要寫的這個簡單頁面也是運用border布局來做。border布局將頁面分為五個部分,分別是north、south、west、east、center,對應着上、下、左、右、中,下面看一個簡單的border布局的例子。

Ext.define('Learning.view.treelearn.trees', {
extend: 'Ext.panel.Panel',
xtype:'trees-main',
referenceHolder: true,
layout: 'border',
defaults:{
collapsible: true,
split: true
},
items: [
{
region :'north',
bind: {
html: '上'
}
},
{
region :'south',
bind: {
html: '下'
}
},
{
reference:'treesLeft',
//xtype:'treesLeft',
region :'west',
width:200,
bind: {
html: '左'
}
},
{
region :'east',
width:200,
bind: {
html: '右'
}
},
{
reference:'treesCenter',
region :'center',
bind: {
html: '中'
}
},
]
});
二、寫north部分(頭部)
上面這部分通常寫系統名,用戶名,也可以加注銷按鈕,搜索框等,這里就簡單寫個名字。
![]()
1、在上面的trees.js基礎上改一下,加入treesTop
{ reference:'treesTop', xtype:'treesTop', region :'north', collapsible: false, split: false, height:50 },
2、treesTop.js
Ext.define('Learning.view.treelearn.region.treesTop', {
extend: 'Ext.toolbar.Toolbar',
xtype:'treesTop',
style:'background-color:#35baf6;color:#fff;',
items:[
{
xtype:'label',
bind:{
text:'Extjs Learning'
},
style:'font-size:20px;font-weight:bold;'
},'->',
{
xtype:'label',
bind:{
text:'當前用戶:'+'麥豇豆',
},
},
]
});
三、寫west部分(左側導航欄)
下圖一是導航欄完成效果,圖二是目錄結構(就是我這里用到的文件都放在哪了)
1、在上面的trees.js中改一下,加入treesLeft
{ reference:'treesLeft', xtype:'treesLeft', region :'west', width:220, bind: { html: '左' } },
2、寫treesLeft.js,數據來自store
Ext.define('Learning.view.treelearn.region.treesLeft', {
extend: 'Ext.tree.Panel',
xtype:'treesLeft',
title:'導航菜單',
lines: false,
rootVisible: false,
store:Ext.create('Learning.store.treelearn.treesLeftStore', {
storeId: "treesLeftStoreId"
}),
});
3、treesLeftStore.js,模擬ajax,加載data.json中的數據
Ext.define('Learning.store.treelearn.treesLeftStore', {
extend:"Ext.data.TreeStore",
alias: 'store.treesLeftStore',
proxy: {
type: 'ajax',
url: 'app/data/data.json'
},
root: {
expanded: true
},
autoLoad: true
});
4、data.json,一般后台傳過來的就是json數據,這里寫的內容不涉及到后端,所以就自己模擬數據了。(這里少寫幾條數據,就是展示下格式)
[ { text: 'Panels', id: 'panels', expanded: true, children: [ { id: 'basic-panels', text: 'Basic Panel', leaf: true }, { id: 'framed-panels', text: 'Framed Panel', leaf: true } ] }, { text: 'Trees', id: 'trees', expanded: true, children: [ { id: 'basic-trees', text: 'Basic Trees', leaf: true }, { id: 'tree-reorder', text: 'Tree Reorder', leaf: true } ] }, ]
-----------------------到這里側邊欄的樣子就出來了----------------------------------------
但是只是樣子貨,能看不能用,下一篇寫怎么讓它可以跳轉頁面。Extjs6(四)——側邊欄導航根據路由跳轉頁面


