ExtJS组件 的代码和运行效果

简介: 已经决定前端还是要介入,原因有两个: 1.显得专业,原因么,你懂得; 2. 不想做无用功; 本来想用VUE但是毕竟,人家已经用了Ext,咱们不能落下。 ExtJS 这个技术呢,有个包,有个开发环境,也有Doc或者API之类的。

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

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

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

https://fiddle.sencha.com/#view/editor
这个网址,访问的时候,界面如下:
_

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

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

下面介绍八种组件:

1.Component组件
_
代码

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容器
_
_

_
代码:

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官网自带的测试机时,需要选择一下浏览器类型
_
代码:

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
            }

        ]

    });

});

_

4.panel的toolbar上添加上下左右的按钮
_

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页
_
代码

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
_

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组件
_
代码:

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对话框组件
_

<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个组件演习结束,下面介绍布局

目录
相关文章
|
JavaScript 前端开发 Java
bootsrap+jquery+组件项目引入文件的常见报错
bootsrap+jquery+组件项目引入文件的常见报错
82 0
|
6月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的城市公交调度系统附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的城市公交调度系统附带文章和源代码部署视频讲解等
37 4
|
JavaScript 前端开发 容器
js如何实现选项卡功能
js如何实现选项卡功能
|
JavaScript 前端开发 C++
JavaScript 调用 C++/Qt 工程(附有代码 + demo)
JavaScript 调用 C++/Qt 工程(附有代码 + demo)
|
设计模式 缓存 移动开发
像 jQuery 一样通过函数开发和调用小程序组件
像 jQuery 一样通过函数开发和调用小程序组件
179 0
|
JavaScript 前端开发 API
如何用不到200行代码写一款属于自己的js类库
JavaScript 的核心是支持面向对象的,同时它也提供了强大灵活的 OOP 语言能力。本文将使用面向对象的方式,来教大家用原生js写出一个类似jQuery这样的类库。我们将会学到如下知识点
185 0
|
JavaScript
Vue.js - 动态编译(添加)第三方组件(Element UI 案例)
Vue.js - 动态编译(添加)第三方组件(Element UI 案例)
409 0
|
JavaScript 前端开发 API
小程序框架wepy文档
wepy官网:https://tencent.github.io/wepy/index.html 项目创建与使用 安装wepy 以下安装都通过npm安装 安装wepy命令行工具: npm install wepy-cli -g 在开发目录生成开发DEMO: wepy new myproject 开.
4783 0
|
小程序 容器 编译器
如何在mpvue中正确的引用小程序的原生自定义组件
最近,很多人给我留言,问我说怎么在mpvue项目中引入小程序原生框架中的自定义组件。 有这种需求,是非常正常的一件事情。因为在实际开发中,我们通常希望使用已有的开源组件库来进行开发,这些开源组件库大多是基于原生自定义组件的方式写成,比如目前比较流行的Vant Weapp、iView Weapp等等。
2541 0