ExtJS组件 的代码和运行效果

已经决定前端还是要介入,原因有两个:
1.显得专业,原因么,你懂得;

  1. 不想做无用功;
    本来想用VUE但是毕竟,人家已经用了Ext,咱们不能落下。

ExtJS 这个技术呢,有个包,有个开发环境,也有Doc或者API之类的。
对于刚刚上手的新手,可以使用Ext官网提供的在线webservice来测试ext代码,找找感觉:

https://fiddle.sencha.com/#view/editor
这个网址,访问的时候,界面如下:
ExtJS组件  的代码和运行效果

其实还有个地方:
http://docs.sencha.com/extjs/6.5.0/guides/quick_start/presenting_data.html
这个官网的Doc,可以边看边改边运行查看效果

ExtJS的组件和容器
组件component
容器container
组件放在容器中

下面介绍八种组件:

1.Component组件
ExtJS组件  的代码和运行效果
代码

var cum = Ext.create('Ext.Component', {
    html: "我们绘制的组件:Component",
    width: 300,
    height: 400,
    shadow: true,
    style: {
        coler: '#f12',
        backgroundColor: '#f82'

    },
    renderTo: Ext.getBody()

});
cum.center();

2.Container容器
ExtJS组件  的代码和运行效果
ExtJS组件  的代码和运行效果

ExtJS组件  的代码和运行效果
代码:

Ext.onReady(function () {
    
    var cum = Ext.create('Ext.container.Container', 
    {

        layout: {
            type: 'vbox', //垂直排列组件
            align: 'center'
        },
        html: "我们绘制的组件:Container(带有两个items)",
        width: 300,
        height: 200,
        shadow: true,
        renderTo: Ext.getBody(),
        
        style: {
            coler: '#a92',
            backgroundColor: '#fff'
        },
        
        defaults:{
          labelWidth:100,
          flex:0
        },
        
        

        items: [  //三个子组件 两个日期选择框
            {
                xtype: 'datefield',
                name: 'startDate',
                fieldLabel: '开始日期'
            }, {
                xtype: 'datefield',
                name: 'endDate',
                fieldLabel: '结束日期'
            }

        ]

    });

});

3.panel组件
使用ExtJS官网自带的测试机时,需要选择一下浏览器类型
ExtJS组件  的代码和运行效果
代码:

Ext.onReady(function () {

    var con = Ext.create('Ext.panel.Panel', {

        layout: {
            align: 'center'
        },
        title: 'book',
        height: 260,
        renderTo: Ext.getBody(),

        defaults: {
            style: {
                padding: '5px',
            },
            bodyPadding: 5
        },

        tools: [{
            type: 'refresh',
            tooltip: '刷新',
            handler: function (event, toolEl, panel) {

                alert("用户刷新数据");
            }

        }, {

            type: 'save',
            tooltip: '保存',
            handler: function (event, toolEl, panel) {

                alert("用户保存数据");
            }

        }],

        items: [{
                title: "标题信息",
                height: 120,
                items: [{
                    fieldLabel: 'book',
                    xtype: 'textfield'
                }],
                flex: 2

            }, {
                title: "标题信息",
                height: 120,
                items: [{
                    fieldLabel: 'cad',
                    xtype: 'textfield'
                }],
                flex: 2
            }

        ]

    });

});

ExtJS组件  的代码和运行效果

4.panel的toolbar上添加上下左右的按钮
ExtJS组件  的代码和运行效果

Ext.onReady(function () {

    Ext.create('Ext.panel.Panel', {
        
        renderTo: Ext.getBody(),
        title: 'book',
        height: 220,
        html: 'say goodbye',
        
        tools: [{
            type: 'save'

        }],
        
        tbar: [{
            xtype: 'button',
            text: '顶部按钮1'
        }, {
            xtype: 'button',
            text: '顶部按钮2'
        }],
        
        bbar: [{
            xtype: 'button',
            text: '底部按钮1'
        }, {
            xtype: 'button',
            text: '底部按钮2'
        }],
        
        lbar: [{
            xtype: 'button',
            text: '左侧按钮1'
        }, {
            xtype: 'button',
            text: '左侧按钮2'
        }],
        
        rbar: [{
            xtype: 'button',
            text: '右侧按钮1'
        }, {
            xtype: 'button',
            text: '右侧按钮2'
        }],
        

    });

});

5.tab页
ExtJS组件  的代码和运行效果
代码

Ext.onReady(function () {

    var tabPanel = Ext.create('Ext.tab.Panel', {
        
       renderTo:Ext.getBody(),
       height:200,
       items:[
           {
            
            title:'默认tab',
            html:'kaikaixinxin'
            
           }],
           
           bbar:[
               {xtype:'tbfill'},
               {
                   xtype : 'button',
                   text : '添加',
                   listeners:{
                       click:function(){
                           var tab = tabPanel.add({
                               title:'new tab',
                               html:'time: '+ Ext.util.Format.date(new Date(),'H时i分s秒'),
                               closable:true
                               
                           });
                           tabPanel.setActiveTab(tab);
                       }
                       
                   }
               },
               {
                   xtype:'button',
                   text:'关闭',
                   listeners:{
                       click:function(){
                           
                           tabPanel.remove(tabPanel.getActiveTab());
                       }
                       
                   }
               },
               {xtype:'tbfill'}
               ]
        
    });

});

6.Viewport
ExtJS组件  的代码和运行效果

Ext.onReady(function(){
    
    Ext.create('Ext.container.Viewport',
    {
       layout:'border',
       items:[

           {
               region:'west',
               html:'西',
               width:100,
               border:true,
               margins:'0 0 5 0'
           },
           {
               region:'north',
               html:'北',
               height:90,
               border:true,
               margins:'0 0 5 0'
           },
           {
               region:'south',
               html:'南',
               height:80
               
           },
           {
               region:'east',
               html:'东',
               width:80
               
           },
           {
               region:'center',
               html:'中间',
               
               
           }
           ]
        
    });
    
    
});

7.windows组件
ExtJS组件  的代码和运行效果
代码:

Ext.onReady(function(){
    

    
    Ext.create('Ext.window.Window',
    {

       title:'查询图书',
       width:400,
       height:300,
       x:20,
       y:30,
       html:'hahahah',
       tools:[
           {
               type:'save',
               tooltip:'保存数据',
               handler:function(event,toolEl,panel){
                   
                   alert("用户保存数据");
               }
               
               
           }
           
           ],
           
           dockedItems:[
             {  
               xtype:'toolbar',
               
               dock:'bottom',
               
               items:[
                   {
                       text:'button1'
                   },

                   {
                       text:'button2' 
                   },
                   
                   {xtype:'tbfill'},
                   
                   {
                       text:'button3' 
                   }
                   
                   
                   ]
             }
               ]
        
    }).show();
    
    
});

8.MessageBox对话框组件
ExtJS组件  的代码和运行效果

<html>
    <head></head>
    <body>
        
        <button onclick='Ext.Msg.alert("提醒","对话框哦",function(){
        
        Ext.DomHelper.overwrite("target",id+"执行alert按钮后的效果");
        
        })'>alert对话框
        </button>
        
        <button onclick='Ext.Msg.confirm("确认","确认框哦",function(id){
        
        
        Ext.DomHelper.overwrite("target",id+"执行confirm按钮后的效果");
       
        
        })'>confirm对话框
        </button>
        
        <div id = "target"></div>
        
    </body>
</html>

至此教材中8个组件演习结束,下面介绍布局

上一篇:jQuery:收集一些基于jQuery框架开发的控件/jquery插件


下一篇:Spring Framework 组件注册 之 @Component