Web前端开发备忘录

快速查找常用代码片段和开发技巧

150+
代码片段
50+
实用技巧
30+
最佳实践
12
收藏夹

语义化HTML5结构

使用HTML5语义化标签构建清晰的页面结构

HTML
<header>
  <nav></nav>
</header>
<main>
  <article>
    <section></section>
  </article>
  <aside></aside>
</main>
<footer></footer>
提示:语义化标签有助于SEO优化和屏幕阅读器理解页面结构

Flexbox居中布局

使用Flexbox实现完美的元素居中

CSS
.center {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
}

.center-item {
  padding: 20px;
  background: #61dafb;
}
提示:这是最简单可靠的居中方案,兼容现代浏览器

防抖与节流

优化高频事件处理,提升性能

JavaScript
// 防抖 - 延迟执行
function debounce(func, delay) {
  let timeoutId;
  return function(...args) {
    clearTimeout(timeoutId);
    timeoutId = setTimeout(() => {
      func.apply(this, args);
    }, delay);
  };
}

// 节流 - 限制执行频率
function throttle(func, limit) {
  let inThrottle;
  return function(...args) {
    if (!inThrottle) {
      func.apply(this, args);
      inThrottle = true;
      setTimeout(() => inThrottle = false, limit);
    }
  };
}
应用场景:搜索框输入、滚动事件、窗口resize等

CSS Grid响应式布局

使用CSS Grid创建复杂的响应式布局

CSS
.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
  padding: 20px;
}

.grid-item {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  padding: 20px;
  border-radius: 10px;
  color: white;
}
优势:自动适应屏幕尺寸,无需媒体查询

Promise异步处理

优雅地处理异步操作和错误

JavaScript
// async/await 方式
async function fetchData() {
  try {
    const response = await fetch('/api/data');
    const data = await response.json();
    return data;
  } catch (error) {
    console.error('Error:', error);
    throw error;
  }
}

// Promise.all 并发请求
const [user, posts, comments] = await Promise.all([
  fetchUser(),
  fetchPosts(),
  fetchComments()
]);

React Hooks常用模式

使用Hooks简化状态管理和副作用

React
import { useState, useEffect, useCallback } from 'react';

function useCounter(initialValue = 0) {
  const [count, setCount] = useState(initialValue);
  
  const increment = useCallback(() => {
    setCount(c => c + 1);
  }, []);
  
  const decrement = useCallback(() => {
    setCount(c => c - 1);
  }, []);
  
  return { count, increment, decrement };
}

Vue3 Composition API

使用Composition API组织逻辑

Vue
import { ref, computed, onMounted } from 'vue';

export default {
  setup() {
    const count = ref(0);
    
    const doubled = computed(() => count.value * 2);
    
    const increment = () => {
      count.value++;
    };
    
    onMounted(() => {
      console.log('Component mounted');
    });
    
    return { count, doubled, increment };
  }
}

ESLint配置

统一的代码风格和规范

.eslintrc.js
module.exports = {
  env: {
    browser: true,
    es2021: true
  },
  extends: ['eslint:recommended'],
  parserOptions: {
    ecmaVersion: 12,
    sourceType: 'module'
  },
  rules: {
    'indent': ['error', 2],
    'quotes': ['error', 'single'],
    'semi': ['error', 'always']
  }
};
粤ICP备2025359522号