• <div id="ogoia"><li id="ogoia"></li></div>
  • <div id="ogoia"><div id="ogoia"></div></div>
    <xmp id="ogoia"><li id="ogoia"></li>
    <small id="ogoia"><li id="ogoia"></li></small>
  • <div id="ogoia"><li id="ogoia"></li></div>
  • <menu id="ogoia"></menu>
  • <s id="ogoia"><menu id="ogoia"></menu></s> <small id="ogoia"><div id="ogoia"></div></small><label id="ogoia"></label>
    <menu id="ogoia"><menu id="ogoia"></menu></menu>
    <button id="ogoia"></button>
  • <div id="ogoia"><small id="ogoia"></small></div><xmp id="ogoia"><div id="ogoia"></div>
  • <div id="ogoia"><div id="ogoia"></div></div>
  • <div id="ogoia"></div>
  • <menu id="ogoia"><div id="ogoia"></div></menu>
  • <div id="ogoia"><div id="ogoia"></div></div>
  • <div id="ogoia"><li id="ogoia"></li></div>
  • <div id="ogoia"><div id="ogoia"></div></div>
  • <div id="ogoia"><li id="ogoia"></li></div>
  • <div id="ogoia"><button id="ogoia"></button></div>
  • <div id="ogoia"><li id="ogoia"></li></div>
    <small id="ogoia"><li id="ogoia"></li></small>
    <small id="ogoia"></small>
  • <small id="ogoia"></small>
    <small id="ogoia"><div id="ogoia"></div></small>
  • <div id="ogoia"><button id="ogoia"></button></div>
  • <small id="ogoia"><li id="ogoia"></li></small><small id="ogoia"><li id="ogoia"></li></small>
  • <div id="ogoia"><li id="ogoia"></li></div>
  • <div id="ogoia"><li id="ogoia"></li></div>
  • <div id="ogoia"><button id="ogoia"></button></div>

    五月前端细节总结

    细节知识点

    1、代码格式

    数学操作符两侧留空格;props数据类型监测放在类前面;翻译;warning;函数名变量名是否最佳;减少不必要的props, state;减少不必要的请求;

    使用一个代码(JS-css)尽量避免其他样式的改变(不需要的不要加,避免画蛇添足);

    屏幕录制的结束快捷键:control + command + esc

    webpack 内存溢出解决方法:配置

    "scripts": {
        "start": "node scripts/start.js",
        "build": "node scripts/build.js",
        "test": "node scripts/test.js --env=jsdom",
        "dev": "export NODE_ENV=development && node config/server.js --max-old-space-size=4096 --inline --progress"
      },
    

    一些常用的东西,例如 SeafileAPI,可以绑定到全局变量。例如设施 window.seafileAPI = seafileAPI 这样其他地方很容易调用这个变量了。

    • 编译成中文: 将 po 文件转化成 mo 文件。

    run.sh python-env /data/dev/seahub/manage.py compilemessages

    docker 内部运行 到seahub目录下运行,编译出来即可(需要几分钟)

    run.sh python-env /data/dev/seahub/manage.py compilemessages
    
    2、input

    1、input submit 等受控组件,点击后需要 event.preventDefault 阻止默认事件(界面跳转)。这部分受控组件中的变量直接可以显示输入的内容。这里可以显示一部分用户输入(但是界面不会提醒用户输入的内容不规范)。

    handleInputChange = (event) => {
      event.preventDefault();
      this.setState({
        value: event.target.value.toLowerCase.replace(/i/g, 'I');
      });
    }
    

    打开对话框后,内部的输入框 input 自动聚焦

    传统的JS中,直接使用 focus 方法,即可使输入框对焦。

    在 React-Strap 中,不能直接使用这个方法,在 Modal 设置 autofocus 貌似没用,所以获取DOM并对焦

    <Input innerRef={input => {this.newInput = input;}}/>
    
    constructor(props) {
      super(props);
      this.state = {};
      this.newInput = React.createRef();
    }
    
    componentDidMount() {
      this.newInput.focus();
      this.newInput.setSelectionRange(0, 0);
    }
    

    这样做就可以使得对话框打开后聚焦

    回车键后提交内容,需要阻止默认事件

    setSelectionRange 可以从一个被 focused 的 input (https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/input) 元素中选中特定范围的内容。

    input.setSelectionRange(2,5);
    
    3、CSS3

    设置一个界面动画的暂停和继续(JS点击按钮,动画暂停或者显示)

    div {
      animation-play-state:paused;
      animation-play-state:running;
    	-webkit-animation-play-state:paused; /* Safari 和 Chrome */
    }
    
    handleButtonClick = () => {
      this.refs.div.style.animationPlayState = 'running'
    }
    

    高度宽度单位 vh vw (view height width) 相对于视口的高度和宽度,取值是0~100。某个元素相对于浏览器视口的高度。主要用于浏览器兼容问题,谷歌浏览器实际宽度和视口宽度一致,一部分浏览器实际宽度和视口宽度不一致,所以需要设置这个宽度(当浏览器缩放时,图片尺寸会变化);

    background-size 表示背景图片的尺寸:可以使用px/%/container/cover

    PX是绝对尺寸,% 是相对于div的尺寸。container 表示背景铺满div,但是不够的地方是黑色的,背景图片可以完全显示在div上面。cover 表示背景铺满div并且可能超出,一部分背景图片显示不全。通常使用cover属性。

    JS 中一个组件,调用另一个组件的方法时

    if (obj) obj.method();
    // 首先判断这个外部对象是否存在,然后再执行这个对象的方法(如果外部组件没有传入,这个组件不会报错)
    

    react 中不需要用 状态变量传递信息(让一个状态刷新子组件的列表内容)如果有这种情况,一定是其他地方还有更好的写法,把刷新子组件列表内容放在父组件中

    进行异步操作时,不确定服务器相应的时间,最好加一个loading图标。可以打开对话框,最好在对话框中显示加载状态。

    react cookies 库

    import cookie from 'react-cookies';
    
    cookie.load('last_visiter') 
    ookie.save('view_mode', value);
    
    展开阅读全文

    没有更多推荐了,返回首页

    加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】|