JavaScript 编码原则之各司其职|青训营笔记

59 阅读1分钟

JavaScript 编码原则之各司其职|青训营笔记

这是我参与「第五届青训营 」伴学笔记创作活动的第3天。

一、本堂课重点内容:

  • 各司其职 JavaScript 好代码的标准
    HTML/CSS/JS 各司其责

二、详细知识点介绍:

  • 各司其责 ·HTML/CSS/JS各司其职
    ·应当避免不必要的由JS直接操作样式
    ·可以用class来表示状态
    ·纯展示类交互寻求零JS方案

三、实践练习例子:

  • 各司其责 实现夜间日间切换功能的js代码版本对比
    版本一:
const btn = document.getElementById('modeBtn');
btn.addEventListener('click',(e) => {
  const body = document.body;
  if(e.target.innerHTML ===  '🌞'){
    body.style.backgroundColor = 'black';
    body.style.color = 'white';
    e.target.innerHTML = '🌛';
  }else{
    body.style.backgroundColor = 'white';
    body.style.color = 'black';
    e.target.innerHTML = '🌞';
  }
});

版本二:

btn.addEventListener('click',(e) => {
  const body = document.body;
  if(body.className !== 'night'){
    body.className = 'night';
  }else{
    body.className = ' ';
  }
});

分析:版本一是在js代码里直接对页面的样式进行修改,而版本二中页面样式的修改是在CSS中的,JS只负责行为的控制,这更加符合CSS和JS本身的职责,也就是所谓的各司其职。 )

版本三:(纯展示类交互寻求零JS方案)
HTML:

<body>
  <input id = "modeCheckBox" type = "checkbox">
  <div class = "content">
    <header>
        <label id = "modeBtn" for = "modeCheckBox"></label>
        <h1>深夜食堂</h1>
    </header>
    <main>
        ...
    </main>
  </div>
</body>

CSS:

#modeCheckBox:checked + .content{
  background-color: black;
  color:white;
  transition: all ls;
}

四、课后个人总结:

  • 如何采用更加简洁高效的代码是很重要的
  • 需要我们认真了解各个板块的作用和边界,对于基础的要求很高。