머리글

  
let data = {  table: {      customHeader: [          [              { title: \\'City\\', attr: { rowspan: 2 }, class: \\'border-r border-t\\' },              { title: \\'Clothes\\', attr: { colspan: 3 }, class: \\'border-r border-t\\' },              { title: \\'Accessories\\', attr: { colspan: 2 }, class: \\'border-t\\' }          ],          [              { title: \\'Trousers\\', class: \\'border-r\\' },              { title: \\'Skirts\\', class: \\'border-r\\' },              { title: \\'Dresses\\', class: \\'border-r\\' },              { title: \\'Bracelets\\', class: \\'border-r\\' },              { title: \\'Rings\\' },          ]      ],  }}

    

그리고 이것이 우리가 보여주고 싶은 데이터입니다:

data: [    { \\\"city\\\": \\\"Mandalay\\\", \\\"trousers\\\": 79, \\\"skirts\\\": 16, \\\"dresses\\\": 14, \\\"bracelets\\\": 69, \\\"rings\\\": 99 },    { \\\"city\\\": \\\"George Town\\\", \\\"trousers\\\": 68, \\\"skirts\\\": 24, \\\"dresses\\\": 90, \\\"bracelets\\\": 96, \\\"rings\\\": 48 },    { \\\"city\\\": \\\"Gent\\\", \\\"trousers\\\": 26, \\\"skirts\\\": 60, \\\"dresses\\\": 67, \\\"bracelets\\\": 5, \\\"rings\\\": 43 },    { \\\"city\\\": \\\"Mombasa\\\", \\\"trousers\\\": 34, \\\"skirts\\\": 62, \\\"dresses\\\": 18, \\\"bracelets\\\": 75, \\\"rings\\\": 78 },    { \\\"city\\\": \\\"Lyon\\\", \\\"trousers\\\": 13, \\\"skirts\\\": 33, \\\"dresses\\\": 12, \\\"bracelets\\\": 0, \\\"rings\\\": 17 },    { \\\"city\\\": \\\"Vancouver\\\", \\\"trousers\\\": 82, \\\"skirts\\\": 91, \\\"dresses\\\": 18, \\\"bracelets\\\": 96, \\\"rings\\\": 72 },    { \\\"city\\\": \\\"Cairn\\\", \\\"trousers\\\": 64, \\\"skirts\\\": 43, \\\"dresses\\\": 14, \\\"bracelets\\\": 95, \\\"rings\\\": 55 },]

보행인

    
customFooter: [    [        { value: \\'Total\\', class: \\'font-bold border-r text-center\\', attr: { rowspan: 2 } },        { name: \\'total-trousers\\', class: \\'text-right border-r\\' },        { name: \\'total-skirts\\', class: \\'text-right border-r\\', },        { name: \\'total-dresses\\', class: \\'text-right border-r\\' },        { name: \\'total-bracelets\\', class: \\'text-right border-r\\' },        { name: \\'total-rings\\', class: \\'text-right\\' },    ],    [        { name: \\'total-clothes\\', class: \\'text-center border-r\\', attr: { colspan: 3 } },        { name: \\'total-accessories\\', class: \\'text-center\\', attr: { colspan: 2 } },    ],],

예시 데이터:

도시 이름과 다양한 의류 품목이 포함된 샘플 데이터를 사용하여 테이블의 기능을 시연합니다.

추가 참고사항:

외부 링크

  1. 데모: https://framework.fuwafuwa.web.id/examples/simple-table
  2. 설명: https://framework.fuwafuwa.web.id/docs/simple-table.html#simple-table

결론:

이 분석은 Alpine JS를 통해 유연한 머리글, 본문 및 바닥글이 포함된 동적 테이블을 만들 수 있는 방법을 보여줍니다. 이 접근 방식은 특히 데이터가 자주 변경되는 시나리오의 경우 테이블 생성 및 관리를 단순화합니다.

","image":"http://www.luping.net/uploads/20240807/172301076366b30ecb43db6.jpg","datePublished":"2024-08-07T14:06:02+08:00","dateModified":"2024-08-07T14:06:02+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Alpine JS를 사용한 동적 테이블 생성

Alpine JS를 사용한 동적 테이블 생성

2024-08-07에 게시됨
검색:962

Dynamic Table Creation with Alpine JS

이 문서에서는 경량 JavaScript 프레임워크인 Alpine JS를 사용하여 동적 테이블을 만드는 방법을 살펴봅니다. 기본 시나리오와 복잡한 시나리오에 초점을 맞춰 프로세스를 머리글, 본문, 바닥글의 세 섹션으로 나누어 보겠습니다.

설정:

  1. HTML 구조: x-data 지시문이 첨부된 기본 HTML 요소()로 시작합니다. 이 지시문은 반응 데이터를 요소에 바인딩합니다.
  2. JavaScript 데이터: 테이블 데이터를 보관하기 위해 HTML 외부에 빈 JavaScript 개체(데이터)를 정의합니다.
  3. 초기 코드는 다음과 같습니다.

    머리글

  • 헤더에는 thead 요소를 사용합니다.
  • x-for 지시문은 table.customHeader 데이터를 반복하여 행과 열을 동적으로 생성합니다.
  • 복잡한 헤더는 colspan 및 rowspan 속성(col.attr에 정의됨)을 활용하여 셀을 병합할 수 있습니다.
  • 각 셀 내의 콘텐츠는 x-html을 사용하여 표시되고 col.title 속성에 바인딩됩니다.

  

let data = {
  table: {
      customHeader: [
          [
              { title: 'City', attr: { rowspan: 2 }, class: 'border-r border-t' },
              { title: 'Clothes', attr: { colspan: 3 }, class: 'border-r border-t' },
              { title: 'Accessories', attr: { colspan: 2 }, class: 'border-t' }
          ],
          [
              { title: 'Trousers', class: 'border-r' },
              { title: 'Skirts', class: 'border-r' },
              { title: 'Dresses', class: 'border-r' },
              { title: 'Bracelets', class: 'border-r' },
              { title: 'Rings' },
          ]
      ],
  }
}

  • tbody 요소는 테이블의 데이터 행을 보유합니다.
  • x-for를 사용하여 table.data를 반복합니다.
  • 각 행에는 x 텍스트를 사용하여 해당 개체 속성의 데이터로 채워진 셀()이 있습니다.
    
        
    
    

    그리고 이것이 우리가 보여주고 싶은 데이터입니다:

    data: [
        { "city": "Mandalay", "trousers": 79, "skirts": 16, "dresses": 14, "bracelets": 69, "rings": 99 },
        { "city": "George Town", "trousers": 68, "skirts": 24, "dresses": 90, "bracelets": 96, "rings": 48 },
        { "city": "Gent", "trousers": 26, "skirts": 60, "dresses": 67, "bracelets": 5, "rings": 43 },
        { "city": "Mombasa", "trousers": 34, "skirts": 62, "dresses": 18, "bracelets": 75, "rings": 78 },
        { "city": "Lyon", "trousers": 13, "skirts": 33, "dresses": 12, "bracelets": 0, "rings": 17 },
        { "city": "Vancouver", "trousers": 82, "skirts": 91, "dresses": 18, "bracelets": 96, "rings": 72 },
        { "city": "Cairn", "trousers": 64, "skirts": 43, "dresses": 14, "bracelets": 95, "rings": 55 },
    ]
    

    보행인

    • tfoot 요소는 바닥글을 정의합니다.
    • 헤더와 유사하며 x-for를 사용하여 table.customFooter 데이터를 반복합니다.
    • 그러나 바닥글은 x-html을 사용하여 table.footerData 내의 속성을 참조하여 동적 값을 표시할 수 있습니다.
    
        
    
    
    customFooter: [
        [
            { value: 'Total', class: 'font-bold border-r text-center', attr: { rowspan: 2 } },
            { name: 'total-trousers', class: 'text-right border-r' },
            { name: 'total-skirts', class: 'text-right border-r', },
            { name: 'total-dresses', class: 'text-right border-r' },
            { name: 'total-bracelets', class: 'text-right border-r' },
            { name: 'total-rings', class: 'text-right' },
        ],
        [
            { name: 'total-clothes', class: 'text-center border-r', attr: { colspan: 3 } },
            { name: 'total-accessories', class: 'text-center', attr: { colspan: 2 } },
        ],
    ],
    

    예시 데이터:

    도시 이름과 다양한 의류 품목이 포함된 샘플 데이터를 사용하여 테이블의 기능을 시연합니다.

    추가 참고사항:

    • 스타일은 col.class 및 data.class 속성 내에 정의된 CSS 클래스를 사용하여 수행됩니다.
    • 제공된 링크는 추가 탐색을 위한 전체 작업 데모를 제공합니다.

    외부 링크

    1. 데모: https://framework.fuwafuwa.web.id/examples/simple-table
    2. 설명: https://framework.fuwafuwa.web.id/docs/simple-table.html#simple-table

    결론:

    이 분석은 Alpine JS를 통해 유연한 머리글, 본문 및 바닥글이 포함된 동적 테이블을 만들 수 있는 방법을 보여줍니다. 이 접근 방식은 특히 데이터가 자주 변경되는 시나리오의 경우 테이블 생성 및 관리를 단순화합니다.

릴리스 선언문 이 글은 https://dev.to/aazwar/dynamic-table-creation-with-alpine-js-2ha4?1에서 복제됩니다.1 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3