很多人都利用GIT上的scratch3.0做开发,但是苦于有些定制需要个性化开发但是不知道如何动手。本篇文章来做好普及工作吧。

首先需要完成事项如下:

1.需要进行modal定义

2.新增窗口的UI界面

3.新增窗口逻辑页面

4.GUI的UI页面注册

5.gui逻辑页面注册

6.顶部菜单新增接口

下面我们就一步不来模拟,例如,我需要开发一个论坛功能。

第一步,modal定义

  1.打开reducers/modals.js文件,修改如下:

    1)找到约16行,新增以下代码

    const MODAL_BBS = 'bbs';

    2.)找到约30行,新增如下代码

  ·  [MODAL_BBS]: false

    3)找到约96行,新增如下代码

    const openbbs = function () {

      return openModal(MODAL_bbs);
    }

    const closebbs = function () {
      return closeModal(MODAL_bbs);
    };

    4)找到末尾倒数第二行,新增代码

      openbbs,
        closebbs
    以上请注意逗号的使用
第二步,新增窗体的UI界面,详见附件
  1)components/bbs/bbs.jsx

  2)components/bbs/bbs.css

第三步,新增窗体的逻辑页面,详见附件

  containers/bbs.jsx

第四步,gui 的UI页面注册

  找到compents/gui/gui.jsx

  1)找到第27行,新增代码

    import Bbs from '../../containers/bbs.jsx';
  2)找到约118行,新增代码,别忘了逗号

    bbsVisible,
  3)找到约180行,新增代码
    {bbsVisible ? (
                      <Bbs />
                ) : null}
  4)搜索tipsLibraryVisible: PropTypes.bool,新增代码
    bbsVisible: PropTypes.bool, 

第五步,GUI逻辑页面注册

  打开containers/gui.jsx在153行,也就是在const mapStateToProps = state => {中新增

    bbsVisible: state.scratchGui.modals.bbs,

第六步,在菜单中新增论坛菜单

  找到compents/menu-bar/menu-bar。jsx

  1)找到33行,找到import {openTipsLibrary} from '../../reducers/modals';

  更改为import {openTipsLibrary,openbbs} from '../../reducers/modals';

  2)找到倒数第9行,也就是mapDispatchToProps = dispatch => ({方法内,新增(注意标点符号)

  onOpenbbs: () =>dispatch(openbbs())

  3)找到479行新增

<Divider className={classNames(styles.divider)} />
 <div   className={classNames(styles.menuBarItem, styles.hoverable)} onClick={this.props.onOpenbbs}>
                          论坛
                    </div>
 
附件地址:点击下载
 

--------------------------------------------------------------------

博主:雷君(微软MVP,众聚互联CEO)

长期致力于企业IT服务,以及青少年编程培训课程

培训机构讨论热线:18859773999

--------------------------------------------------------------------

 

如何为scratch3.0创建一个独立的页面或窗体的更多相关文章

  1. swift3.0 创建一个app引导页面

    swift毕竟不像是oc ,第三方的框架很多,更何况是3.0,自己动手写了个引导页面,看得上我代码的麻友可以拿去用 引导页面有三个部分构成,scrollview用语切换引导视图,pageControl ...

  2. django examples 学习笔记(1)创建一个独立的python环境

    pip install virtualenv   创建一个虚拟环境 virtualenv   my_env      创建一个独立的环境 source my_env/bin/activate   激活 ...

  3. 【原创】使用.NET Core 1.0创建一个Self-Contained控制台应用

    开发机器:win7-x64 .NET Core版本:1.0.0-preview2-003121 Visual Studio Code:1.2.1 至于什么是Self-Contained应用类型以及与P ...

  4. [翻译] 使用 .NET Core 3.0 创建一个 Windows 服务

    原文: .NET Core Workers as Windows Services 在 .NET Core 3.0 中,我们引入了一种名为 Worker Service 的新型应用程序模板.此模板旨在 ...

  5. angular创建一个独立弹窗服务

    1.说明: 这个服务用于创建一个modal(弹窗),通常下,这个弹窗会插入到body的底部,并且拥有自己的作用域($scope),也可以和外界通讯. 2.逻辑: (1).创建模版 (2).拿到模版里要 ...

  6. 怎样创建一个独立于当前文档的新的Document对象

    使用: document.implementation. 如下所示, 新创建的Document对象可以正常使用相关属性和方法, 然后将它的根节点与当前文档的根节点做一个替换. var doc = do ...

  7. react用脚手架创建一个react单页面项目,react起手式

    官网地址:https://react.docschina.org/ 确保本地安装了Node.js node的版本大于8.10    npm的版本大于5.6 1.在本地的某个位置创建一个文件夹,执行以下 ...

  8. 001_创建一个sidebar切换页面

    Table Of Content 准备 基本思路 实现 我们期望实现这样的效果: ![](https://img2018.cnblogs.com/blog/1735896/202001/1735896 ...

  9. 如何从0创建一个react项目

    1. 确保本机电脑安装了yarn和node: 2. 在需要安装的文件夹目录下输入:create-react-app  +(项目名称): PS:上图使用的软件为webStorm 3. 此时一个简单的re ...

随机推荐

  1. springboot自定义页面拦截

    项目结构图 页面拦截代码 @Configuration public class WebConfig implements WebMvcConfigurer { @Override public vo ...

  2. Centos7之搜索命令locate

    locate命令[1] 1.#locate命令 所搜索的后台数据库 2.updatedb 更新数据库 3.操作 [root@localhost ~]# ls 222  anaconda-ks.cfg ...

  3. BuaaRedSun团队博客目录——北航社团项目

    目录 一.Scrum Meeting 1. Alpha 2. Beta 3. Gamma 二.测试报告 三.发布说明 四.技术博客 后端 前端 五.习得的软工原理/方法/技能? Alpha Beta ...

  4. 【python学习案例】python判断自身是否正在运行

    需要引入psutil包: 实现思路: 1)用os.getpid()获取当前程序运行PID,将PID存入文件中 2)用psutil模块获取当前系统所有正在运行的pid 3)读取之前存入的PID,判断该P ...

  5. Maven 教程(4)— 新建Maven项目

    原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79542203 我们以简单的helloworld来作为入门的实例,有些人说掌握了h ...

  6. Python 3.X 练习集100题 02

    企业发放的奖金根据利润提成.利润(I):低于或等于10万元时,奖金可提10%:高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万之间时,高 ...

  7. python 基础 ---- 文件读写

    文件是一种存储在存储存储媒介上的信息或数据 常用的文件类型 文件 的打开关闭 close() 关闭文件 文件的打开路径 绝对路径 : 文件在操作系统中标准的存放路径 相对路径: 与目前引用文件的相对位 ...

  8. PowerBuilder学习笔记之14用户自定义对象

    教程链接:https://wenku.baidu.com/view/9730d1c7aa00b52acec7ca05.html?re=view&rec_flag=default&sxt ...

  9. teacher笔记

    ======= 总览 start ======= 1.素质教育以提高国民素质为根本宗旨4.素质教育是促进学生个性发展的教育5.素质教育是以培养学生的创新精神和事件能力为重点的教育2.素质教育是面向全体 ...

  10. /etc/skel目录

    /etc/skel目录 Linux中的/etc/skel目录(skel是skeleton的缩写,意为骨骼.框架.)是用来存放新用户配置文件的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到 ...