How to use Vue and Element-UI to implement drag-and-drop sorting function
Foreword:
In web development, drag-and-drop sorting function is a common and practical function. This article will introduce how to use Vue and Element-UI to implement the drag-and-drop sorting function, and demonstrate the implementation process through code examples.
1. Environment setup
npm install -g @vue/cli
vue create drag-sort-demo
Follow the prompts to select configuration options and wait for the project to be created.
npm install element-ui
2. Implement drag-and-drop sorting function
import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
<div class="drag-sort-demo">
<el-collapse-transition>
<div v-for="item in list" :key="item.id" class="drag-item" :class="{ 'dragging': draggingId === item.id }" draggable="true" @dragstart="handleDragStart(item)" @dragend="handleDragEnd(item)">
{{ item.name }}
</div>
</el-collapse-transition>
</div>
<el-button type="primary" @click="handleSort">保存排序</el-button>
<script><br>export default {<br> data() {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>return { list: [ { id: 1, name: 'A' }, { id: 2, name: 'B' }, { id: 3, name: 'C' }, { id: 4, name: 'D' }, { id: 5, name: 'E' }, ], draggingId: null, };</pre><div class="contentsignin">Copy after login</div></div><p>},<br> methods: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>handleDragStart(item) { this.draggingId = item.id; }, handleDragEnd() { this.draggingId = null; }, handleSort() { const sortedList = Array.from(this.$el.querySelectorAll('.drag-item')).map((el, index) => { const id = el.getAttribute('data-id'); const name = el.textContent; return { id, name, sort: index + 1 }; }); // 将排序后的列表保存到数据库或发送给后端 },</pre><div class="contentsignin">Copy after login</div></div><p>},<br> };<br></script>
Explanation:
<drag-sort-demo></drag-sort-demo>
<script><br>import DragSortDemo from './components/DragSortDemo.vue' ;</p><p>export default {<br> components: {</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>DragSortDemo,</pre><div class="contentsignin">Copy after login</div></div><p>},<br>};<br></script>
3. Run the project
Execute the following command in the command line to start the project:
npm run serve
Visit http://localhost:8080 to see the demonstration page of the drag and drop sorting function. Drag the list items to change the sorting, and click the Save Sorting button to save the sorting results.
Conclusion:
Through the above steps, we successfully implemented the drag-and-drop sorting function using Vue and Element-UI. This provides a simple and practical solution for our web development, which can improve user experience and optimize interface interaction. I hope this article can be helpful to everyone's front-end development work.
The above is the detailed content of How to use Vue and Element-UI to implement drag-and-drop sorting function. For more information, please follow other related articles on the PHP Chinese website!