Bootstrap&Axios学习

Bootstrap:

1. 引入 Bootstrap

  • 通过 CDN 引入:

  <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.3/dist/umd/popper.min.js"></script>
  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>

这些链接引入了 Bootstrap 的 CSS 和 JavaScript 文件,以及 jQuery 和 Popper.js,它们是 Bootstrap 的 JavaScript 组件所需的依赖。

2. 网格系统(常用)

  • 基本布局:

  <div class="container">
    <div class="row">
      <div class="col-md-4">Column 1</div>
      <div class="col-md-4">Column 2</div>
      <div class="col-md-4">Column 3</div>
    </div>
  </div>

效果: 创建一个三列布局,每列在中等及以上屏幕上占据 1/3 的宽度。

container 是一个固定宽度的容器,row 是行,col-md-4 表示在中等及以上屏幕上每列占据 4/12 的宽度。

3. 常用组件

  • 按钮:

  <button type="button" class="btn btn-primary">Primary Button</button>

效果: 一个蓝色的按钮,带有 Bootstrap 的默认样式。

btn 是按钮的基础类,btn-primary 是一个修饰类,应用了蓝色的主题样式。

  • 导航栏:

  <nav class="navbar navbar-expand-lg navbar-light bg-light">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNav">
      <ul class="navbar-nav">
        <li class="nav-item active">
          <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
        </li>
        <li class="nav-item">
          <a class="nav-link" href="#">Features</a>
        </li>
      </ul>
    </div>
  </nav>

效果: 一个响应式导航栏,包含品牌名称和导航链接。

navbar 是导航栏的基础类,navbar-expand-lg 表示在大屏幕上展开,navbar-light 和 bg-light 设置了导航栏的颜色。

  • 卡片列表:

    <div class="card-group">
    <div class="card">
      <img src="..." class="card-img-top" alt="...">
      <div class="card-body">
        <h5 class="card-title">Card title</h5>
        <p class="card-text">This is a wider card with supporting text below as a natural lead-in to additional content.</p>
      </div>
    </div>
    <div class="card">
      <img src="..." class="card-img-top" alt="...">
      <div class="card-body">
        <h5 class="card-title">Card title</h5>
        <p class="card-text">This card has supporting text below as a natural lead-in to additional content.</p>
      </div>
    </div>
  </div>

效果: 一个带有图片、标题、文本和按钮的卡片。

card 是卡片的基础类,card-img-top 用于图片,card-body 包含卡片的内容。

4. 表单

  • 基本表单:

  <form>
    <div class="form-group">
      <label for="exampleInputEmail1">Email address</label>
      <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
    </div>
    <div class="form-group">
      <label for="exampleInputPassword1">Password</label>
      <input type="password" class="form-control" id="exampleInputPassword1">
    </div>
    <button type="submit" class="btn btn-primary">Submit</button>
  </form>

效果: 一个简单的表单,包含电子邮件和密码输入框,以及一个提交按钮。

解释: form-group 用于包裹每个表单控件,form-control 应用于输入框以提供一致的样式。

5. 模态框

  • 模态框示例:

  <!-- Button trigger modal -->
  <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
    Launch demo modal
  </button>

  <!-- Modal -->
  <div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
          <button type="button" class="close" data-dismiss="modal" aria-label="Close">
            <span aria-hidden="true">&times;</span>
          </button>
        </div>
        <div class="modal-body">
          ...
        </div>
        <div class="modal-footer">
          <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
          <button type="button" class="btn btn-primary">Save changes</button>
        </div>
      </div>
    </div>
  </div>

效果: 点击按钮后弹出一个模态框,模态框包含标题、内容和操作按钮。

modal 是模态框的基础类,modal-dialog 和 modal-content 用于定义模态框的结构,data-toggle="modal" 和 data-target="#exampleModal" 用于触发模态框的显示。

6. 工具提示(Tooltip)

  • 工具提示示例:

  <button type="button" class="btn btn-secondary" data-toggle="tooltip" data-placement="top" title="Tooltip on top">
    Hover me to see tooltip
  </button>

  <script>
    $(function () {
      $('[data-toggle="tooltip"]').tooltip();
    });
  </script>

效果: 当鼠标悬停在按钮上时,会在按钮上方显示一个工具提示。

data-toggle="tooltip" 和 title 属性用于定义工具提示的内容和位置。JavaScript 部分初始化了工具提示功能。

7. 弹出框(Popover)

  • 弹出框示例:

  <button type="button" class="btn btn-lg btn-danger" data-toggle="popover" title="Popover title" data-content="And here's some amazing content. It's very engaging. Right?">
    Click to toggle popover
  </button>

  <script>
    $(function () {
      $('[data-toggle="popover"]').popover();
    });
  </script>

效果: 点击按钮后,会显示一个弹出框,包含标题和内容。

data-toggle="popover"、title 和 data-content 属性用于定义弹出框的内容。JavaScript 部分初始化了弹出框功能。

8. 滚动监听(Scrollspy)

  • 滚动监听示例:

  <nav id="navbar-example2" class="navbar navbar-light bg-light">
    <a class="navbar-brand" href="#">Navbar</a>
    <ul class="nav nav-pills">
      <li class="nav-item">
        <a class="nav-link" href="#section1">Section 1</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#section2">Section 2</a>
      </li>
    </ul>
  </nav>
  <div data-spy="scroll" data-target="#navbar-example2" data-offset="0" class="scrollspy-example">
    <h4 id="section1">Section 1</h4>
    <p>...</p>
    <h4 id="section2">Section 2</h4>
    <p>...</p>
  </div>

效果: 当用户滚动页面时,导航栏会根据当前滚动位置自动更新激活状态。

data-spy="scroll" 和 data-target 属性用于启用滚动监听功能,自动更新导航栏的激活状态。

9. 进度条(Progress)

  • 进度条示例:

  <div class="progress">
    <div class="progress-bar" role="progressbar" style="width: 75%;" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100">75%</div>
  </div>

效果: 显示一个进度条,表示 75% 的完成度。

progress 是进度条的容器,progress-bar 是实际的进度条,style="width: 75%;" 设置了进度条的宽度。

10. 警告框(Alerts)

  • 警告框示例:

  <div class="alert alert-warning alert-dismissible fade show" role="alert">
    <strong>Warning!</strong> This is a warning alert—check it out!
    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
      <span aria-hidden="true">&times;</span>
    </button>
  </div>

效果: 显示一个可关闭的警告框,带有警告信息。

alert 是警告框的基础类,alert-warning 设置了警告的颜色,alert-dismissible 和 close 按钮允许用户关闭警告框。

Axios:

1.请求中带请求参数(post请求为例):

  axios.post('https://api.example.com/data', {
    name: 'John Doe',
    age: 30
  })
  .then(response => {
    console.log('Data posted successfully:', response.data);
  })
  .catch(error => {
    console.error('Error posting data:', error);
  });

2.设置请求头:

  axios.get('https://api.example.com/data', {
    headers: {
      'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
    }
  })
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error('Error fetching data:', error);
  });

使用 headers 选项设置自定义请求头,例如用于身份验证的 Authorization 头。

3.取消请求:

  const CancelToken = axios.CancelToken;
  const source = CancelToken.source();

  axios.get('https://api.example.com/data', {
    cancelToken: source.token
  })
  .then(response => {
    console.log(response.data);
  })
  .catch(thrown => {
    if (axios.isCancel(thrown)) {
      console.log('Request canceled', thrown.message);
    } else {
      console.error('Error fetching data:', thrown);
    }
  });

  // 取消请求
  source.cancel('Operation canceled by the user.');

使用 CancelToken 创建一个取消令牌,并在请求中传递。可以通过调用 source.cancel 方法取消请求。

4.all方法:

  axios.all([
    axios.get('https://api.example.com/data1'),
    axios.get('https://api.example.com/data2')
  ])
  .then(axios.spread((response1, response2) => {
    console.log('Data1:', response1.data);
    console.log('Data2:', response2.data);
  }))
  .catch(error => {
    console.error('Error fetching data:', error);
  });

使用 axios.all 方法同时发送多个请求,axios.spread 方法用于分别处理每个请求的响应。


Bootstrap&Axios学习
http://localhost:8090//archives/bootstrap-xue-xi-bi-ji
作者
潘显镇
发布于
2024年11月01日
许可协议