2017-01-30 8 views
3

저는 Vue.js와 DataTable에 새로운 사람입니다. 여러분 중 일부는 통합에 대한 경험이 있기를 바랍니다. 누군가가 그 좋은 방법으로 Vue.js & DataTable (jquery plugin)? 그냥 좋은 작품입니다하지만 난이 ... 올바른 방법 감사합니다 :)Vue.js & DataTable (jquery plugin)을 사용합니다.

\t var app = new Vue({ 
 

 
\t  el: '#root', 
 

 
\t \t data(){ 
 
\t \t  return{ 
 
       employees: [ 
 
        { 
 
         Name: 'Tiger Nixon', 
 
         Position: 'System Architect', 
 
         Office: 'tokyo', 
 
         Age: '61', 
 
         StartDate: '2011/04/25', 
 
         Salary: '$320,800', 
 
        }, 
 
       ], 
 
       name: '', 
 
       position: '', 
 
       office: '', 
 
       age: '', 
 
       startDate: '', 
 
       salary: '', 
 
       dataTable: null 
 
      } 
 
\t \t }, 
 

 
\t \t methods: { 
 
\t \t  addEmployee(){ 
 
\t \t \t this.dataTable.row.add([ 
 
\t \t \t  this.name, 
 
\t \t \t  this.position, 
 
\t \t \t  this.office, 
 
\t \t \t  this.age, 
 
\t \t \t  this.startDate, 
 
\t \t \t  this.salary, 
 
\t \t \t ]).draw(false); 
 
\t \t  } 
 
\t \t }, 
 

 
\t \t mounted(){ 
 
\t \t  this.dataTable = $('#data_table').DataTable({ 
 

 
\t \t  }); 
 
\t \t } 
 

 

 
\t })
#root{ 
 
    text-align: center; 
 
} 
 

 
.btn{ 
 
    margin-bottom: 30px; 
 
}
<div id="root" class="container"> 
 
\t <form class="form-inline"> 
 
\t \t <div class="form-group"> 
 
\t \t \t <label for="name">Name:</label><br> 
 
\t \t \t <input type="text" v-model="name" class="form-control" id="name"> 
 
\t \t </div> 
 
\t \t <div class="form-group"> 
 
\t \t \t <label for="position">Position</label><br> 
 
\t \t \t <input type="text" v-model="position" class="form-control" id="position"> 
 
\t \t </div> 
 
\t \t <div class="form-group"> 
 
\t \t \t <label for="office">Office</label><br> 
 
\t \t \t <input type="text" v-model="office" class="form-control" id="office"> 
 
\t \t </div> 
 
\t \t <div class="form-group"> 
 
\t \t \t <label for="age">Age</label><br> 
 
\t \t \t <input type="text" v-model="age" class="form-control" id="age"> 
 
\t \t </div> 
 
\t \t <div class="form-group"> 
 
\t \t \t <label for="Start_date">Start Date</label><br> 
 
\t \t \t <input type="text" v-model="startDate" class="form-control" id="start_date"> 
 
\t \t </div> 
 
\t \t <div class="form-group"> 
 
\t \t \t <label for="salary">Salary</label><br> 
 
\t \t \t <input type="text" v-model="salary" class="form-control" id="salary"> 
 
\t \t </div><br><br> 
 
\t \t <button type="button" @click="addEmployee" class="btn btn-primary">Submit</button> 
 
\t </form> 
 
\t <table id="data_table" class="display" cellspacing="0" width="100%"> 
 
\t \t <thead> 
 
\t \t <tr> 
 
\t \t \t <th>Name</th> 
 
\t \t \t <th>Position</th> 
 
\t \t \t <th>Office</th> 
 
\t \t \t <th>Age</th> 
 
\t \t \t <th>Start Date</th> 
 
\t \t \t <th>Salary</th> 
 
\t \t </tr> 
 
\t \t </thead> 
 
\t \t <tbody> 
 
\t \t <tr v-for="employee in employees"> 
 
\t \t \t <td>{{ employee.Name }}</td> 
 
\t \t \t <td>{{ employee.Position }}</td> 
 
\t \t \t <td>{{ employee.Office }}</td> 
 
\t \t \t <td>{{ employee.Age }}</td> 
 
\t \t \t <td>{{ employee.StartDate }}</td> 
 
\t \t \t <td>{{ employee.Salary }}</td> 
 
\t \t </tr> 
 
\t \t </tbody> 
 
\t </table> 
 
</div> 
 

 
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.13/css/jquery.dataTables.css"> 
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
<script type="text/javascript" charset="utf8" src="//cdn.datatables.net/1.10.13/js/jquery.dataTables.js"></script> 
 
<script src="https://unpkg.com/[email protected]/dist/vue.js"></script>

답변

1

내가 vuejs와 테이블에 대한 대안을 선호해야 할. 그 중 하나는 시작하는 https://github.com/ratiw/vuetable-2-tutorial/blob/master/doc/README.md

꽤 빠른 ratiw 에서 구성 요소이며, 부트 스트랩 또는 의미 UI 프레임 워크와 쉽게 통합됩니다. 또한 매우 정교하게 사용자 정의 할 수있는 정렬 필드와 검색 기능을 가지고 있지만 API에서 데이터를 가져 오는 것이지만 API의 특정 데이터 응답 형식을 필요로합니다. 예를 들어 페이지 매김을 구현하는 것이 어렵다는 것을 많이 제어하지 않는 한.

다른 옵션은 https://github.com/matfish2/vue-tables-2입니다. 몇 가지 jsx 설정이 필요하기 때문에 시작하기가 더 힘들지만 위의 첫 번째 구성보다 구조가 좋습니다.

UPDATE : VUE 테이블-2는 이제 미리 컴파일 제공되며 사용자가 구성 요소의 형태로 다른 하나를 발견하면 나는 위의 옵션 중 하나를 선호하거나하는 어떤 변환 또는 로더

솔직히

을 필요로하지 않습니다 awesome-vue (github의 vue 구성 요소 목록). 이러한 사용자 지정 구성 요소를 사용하면 2 개의 라이브러리 (jquery 및 datatables)를 제거 할 수 있으며 vue의 반응적인 특성과 잘 일치합니다.

pdf 내보내기, 스타일 시트 내보내기 또는 멋진 인쇄물이 필요하지 않으면 데이터 테이블을 사용해야하는 이유가 표시되지 않습니다.

+0

답변 주셔서 감사합니다.하지만 파일 (엑셀 등)을 내보내고 jQuery DataTable의 도구와 도구는 다른 라이브러리 나 프레임 워크보다 훨씬 큽니다. 따라서 Vue.js와 jQuery를 통합하고 싶습니다. Vue의 고급 구성 요소 기술에 대한 DataTable 및 고품질의 테이블 기능을 사용하는 강력한 jQuery DataTable .. 내가 찾고있는 대답은 위의 Vue.js 및 DataTable (jquery 플러그인) 예제와 좋은 구현 조언에 대한 확인입니다. .. thanks :) –

+0

그것은 나에게 지금까지 멋지게 보인다. 직선적이고 이해하기 쉬운 한 완벽하게 괜찮습니다. 나는 표의 발견에 관한 몇 가지 조정을 제안 할 것이다. 생성 된 후크에서 id 대신에'$ refs'를 사용하거나 고유 한 ID (예 : 현재 날짜) 'this.tableId = new Date(). getTime(). toString()'을 생성하고'

' 이렇게하면 ID 선택 문제없이 페이지 당 원하는만큼 테이블을 확보 할 수 있습니다. 또한 업데이트/편집을 처리해야합니다. 그 외는 나에게 잘 보일 것 –

+0

대단히 감사합니다 :) –