classnames

如何为scratch3.0创建一个独立的页面或窗体

徘徊边缘 提交于 2020-11-02 06:42:19
很多人都利用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

package.json中 ^ 和 ~ 的区别

空扰寡人 提交于 2020-08-16 02:51:37
"devDependencies" : {    "antd": "^3.1.4" ,    "babel-plugin-import": "~1.1.0" ,    "classnames": "2.2.5" ,    "qs": "^6.3.0" ,    "robe-ajax": "^1.0.1" ,    "expect": "^1.20.2" ,    "js-cookie": "^2.1.3" , } 指定版本号 (1)普通版本号: 表示安装此版本, 比如"classnames": "2.2.5",表示安装2.2.5的版本 (2)表示安装大版本的最小最新子版本: ~版本 ,比如 "babel-plugin-import": "~1.1.0",表示安装1.1.x的最新版本(不低于1.1.0),但是不安装1.2.x,也就是说安装时不改变大版本号和次要版本号 (3)表示安装大版本的最高中版本: ^版本 ,比如 "antd": "^3.1.4",,表示安装3.1.4及以上的版本,但是不安装4.0.0,也就是说安装时不改变大版本号。 来源: oschina 链接: https://my.oschina.net/u/4357381/blog/4316407

JSON和HTML之间互转实现

一笑奈何 提交于 2020-08-13 21:05:43
主要实现功能html转json,再由json恢复html 可去除 style 和 script 标签 将行内样式转换为 js object 将 class 转换为数组形式 主要依赖于 htmlparser2 ; 这是一个性能优越、功能强大的 html 解析库 直接上代码 import { Parser } from "htmlparser2" const numberValueRegexp = /^\d+$/ const zeroValueRegexp = /^0[^0\s].*$/ const scriptRegexp = /^script$/i const styleRegexp = /^style$/i const selfCloseTagRegexp = /^(meta|base|br|img|input|col|frame|link|area|param|embed|keygen|source)$/i const TAG = 'tag' const TEXT = 'text' const COMMENT = 'comment' /** * 去除前后空格 */ export const trim = val => { return (val || '').replace(/^\s+/, '').replace(/\s+$/, '') } /** * 首字母大写 */

80行代码实现Preact-Transition组件

六月ゝ 毕业季﹏ 提交于 2020-05-09 20:20:55
Preact是3kb轻量化方案, 但是一些基础组件找起来比较困难, 用起来也比较别扭,其中一个就是Transition组件, 尝试过** preact-transition-group **, 但是直接npm安装使用就报错了...因为有个preact版本兼容问题 transition.js // 这一行代码没兼容, 新版preact children不一定是都是数组 359 - const child = children[ 0 ] + const child = children[ 0 ] || children 360 return cloneElement(child, childProps) 复制代码 但是看了transition.js (391行) + CSSTransition(181行), 感觉不需要这么多行代码即可实现所需的Transition组件 并且在使用过程中timeout的配置竟是比较迷惑... 所以就有了造论子的机会了 const PopupBaseLayout = ({ children, canClass = '' , position = 'bottom' , }) => { const { enter, onContentExited } = useContext(PopupContext) const transProps = { appear

前端笔记之React(四)生命周期&Virtual DOM和Diff算法&日历组件开发

萝らか妹 提交于 2020-04-19 07:52:00
一、 React 生命周期 一个组件从出生到消亡,在各个阶段 React 提供给我们调用的接口,就是生命周期。 生命周期这个东西,必须有项目,才知道他们干嘛的。 1.1 Mouting 阶段【 装载过程 】 这个阶段在组件上树的时候发生,依次是: constructor(props) 构造函数 作用:初始化state值,此时可访问props、发Ajax请求 componentWillMount() 组件将要上树 作用:常用于根组件中的引用程序配置,不能做任何涉及DOM的事情完成一些计算工作 render() 渲染组件 作用:创建虚拟DOM,组建的UI样式 componentDidMount() 组件已经上树 作用:启动AJAX调用,加载组件的数据,还能用ref得到DOM,添加事件监听 App.js : import React from "react" ; import Child from "./Child.js" ; export default class App extends React.Component{ constructor(){ super(); this .state = { a: 100 , isShow: true } } render(){ return <div> <button onClick={ ()=>{this.setState({a:this

1、ApplicationContextInitializer初始化器解析

喜你入骨 提交于 2020-02-26 04:58:10
1.1、初始化器三种添加到容器中方式 1) 方式1:在resources目录下新建META-INF目录,新建spring.factories文件并赋值 org.springframework.context.ApplicationContextInitializer=com.lwh.springboot.initializer.FirstInitializer @Order(1) public class FirstInitializer implements ApplicationContextInitializer<configurableapplicationcontext> { @Override public void initialize(ConfigurableApplicationContext ctx) { ConfigurableEnvironment environment = ctx.getEnvironment(); Map<string, object> map = new HashMap<>(); map.put("key1", "value1"); MapPropertySource mapPropertySource = new MapPropertySource("firstInitializer", map); environment

XStream使用中的几个问题

佐手、 提交于 2019-12-06 16:42:34
一、背景 写接口过程中,xml和json是最基本的两种返回类型。 fastjson可以很方便的解决json和Pojo之间的转换,我们就希望再找一个实现xml和Pojo之间转换的库,这样就能将实例化的对象,根据接口请求返回数据类型,直接转换成相应格式的返回值。一方面提高开发速度,另一方面后期方便维护。 最终决定使用 thoughtworks的XStream库 。微信开发中用了一段时间,因为微信涉及的xml格式比较简单,很多问题没有出现,现在开发API接口过程中,一些基本问题就出现了。 二、问题 1、 Annotation无效 开始为了将Pojo对应属性名改成想要的,都是使用alias: xstream.alias("item", Item.class); 这样使用太麻烦,最好使用注解 2、 这里是列表文本文本内容无法增加<![CDATA[这是文本]]> 从惯例来看,这里最好使用CDATA包裹 3、 如果Pojo属性包含下划线,生成的xml变成双下划线 Pojo属性,不包含下划线,就不会有这个问题。如果是新项目建议不要使用下划线,驼峰式还是首选的。 三、解决方法 官方文档就有,只是不知道: http://x-stream.github.io/annotations-tutorial.html XStream stream = new XStream(); xstream