首页前端开发JavaScriptVue多选列表组件深入详解

Vue多选列表组件深入详解

时间2024-02-01 00:23:03发布访客分类JavaScript浏览505
导读:收集整理的这篇文章主要介绍了Vue多选列表组件深入详解,觉得挺不错的,现在分享给大家,也给大家做个参考。 多选列表 (Multi-select) 是一种将所有选项列出,并允许用户利用 C...
收集整理的这篇文章主要介绍了Vue多选列表组件深入详解,觉得挺不错的,现在分享给大家,也给大家做个参考。

多选列表 (Multi-select) 是一种将所有选项列出,并允许用户利用 Ctrl/Shift 键进行多选的 UI 元素。这是一种常见的设计元素。有时候为了节省空间,我们会将选项折叠于 Combo Box 中。为了方便用户操作,这个组件还将添加 Select All 和 Clear All 两个按钮,允许用户快速选择或清除选择。这个 UI 元素曾被运用于 Correlation Plot App 中。

注册组件

注册 Multi-Select 组件,简单来说就是复制粘贴已封装好的代码部分。此处建议注册全局组件。

设计该元素的时候考虑了两种模式:第一种是每次点击新选项将保留旧选项并添加新选项,如上述示例图形。这种是较为常见的一种方式。第二种是每次点击新选项则清除旧选项仅保留新选项。若使用这种方式进行多选,则需要利用Ctrl/Shift键。这种设计能便于用户在每一次的点击中消除旧选项。若使用第二方式,需要替换事件@click.exact="AddToOrDeleteFromSelectedColumns"@click.exact="ClickOnColumnListITem"

script tyPE="text/x-template" id="multi-select-template">
…   tr v-for = "(item,index) in columns"      @click.exact="AddToOrDeleteFromSelectedColumns"     @click.shift.exact="AddMultipleToSelectedColumns"     @click.ctrl.exact="AddToOrDeleteFromSelectedColumns"     :title="function(item){
if(item.longname){
return 'Short Name: ' + item.name + '\n----------------\n' + item.longname}
else{
return item.name}
}
    (item)"     class="column-list-entry">
       ...   /tr>
    /script>
    script>
Vue.component("multi-select", {
      template: "#multi-select-template",…/script>
    

调用组件

直接添加自定义标签 调用组件。

multi-select :legend_name="legend_name"       :columns="columns"       :selected_columns="selected_columns"       @update_selected_columns="onSelectedColumnsChange">
    /multi-select>
    

传递数据

最后还需要对组件传递数据。我们可以利用 v-bind 动态绑定数据到父级组件的数据中。

PRops 中 legend_name 绑定 Multi-Select 的所需显示的名称,columns 绑定 Multi-Select 的选项, selected_columns 绑定当前的已选项。另外我们还需要在父级实例中定义事件 “onSelectedColumnsChange”,用于刷新 Multi-Select 组件的显示。

data: function(){
   return {
     legend_name: "Input Columns",     columns:      [       {
"name":"A","longname":"Copper"}
,       {
"name":"B","longname":"Aluminum Aluminum"}
,       {
"name":"C","longname":"Calcium"}
,       {
"name":"D","longname":"Calcium"}
,   ],     selected_columns: [],   }
 }
,... methods:{
    onSelectedColumnsChange:function(new_columns) {
         this.selected_columns = new_columns;
   }
, }
    ,...

到此这篇关于Vue多选列表组件深入详解的文章就介绍到这了,更多相关Vue多选列表组件内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

您可能感兴趣的文章:
  • Vue Element前端应用开发之树列表组件
  • 基于vue的tab-list类目切换商品列表组件的示例代码
  • Vue Element UI自定义描述列表组件

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: js面向对象方式实现拖拽效果下一篇:Vue2.x-使用防抖以及节流的示例猜你在找的JavaScript相关文章 html font标签如何设置字体大小?html font标签属性用法介绍2022-05-16vue3+TypeScript+vue-router的使用方法2022-04-16vue3获取当前路由地址2022-04-16如何利用React实现图片识别App2022-04-16JavaScript展开运算符和剩余运算符的区别详解2022-04-16微信小程序中使用vant框架的具体步骤2022-04-16Vue elementUI表单嵌套表格并对每行进行校验详解2022-04-16如何利用Typescript封装本地存储2022-04-16微信小程序中wxs文件的一些妙用分享2022-04-16JavaScript的Set数据结构详解2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: Vue多选列表组件深入详解
本文地址: https://pptw.com/jishu/594675.html
Vue2.x-使用防抖以及节流的示例 NodeJS和浏览器中this关键字的不同之处

游客 回复需填写必要信息