Vue + elementUi 组件

一、树形控件(el-tree) + Icon 图标实现带图标的菜单栏

1. 页面布局

     <template>
     <!-- 菜单信息 -->
     <nav>
          <el-tree
            class="filter-tree"
            :data="items"
            node-key="path"
            :props="defaultProps"
            highlight-current
            :render-content="renderContent"
            @node-click="handleNodeClick"
            ref="tree"
            accordion
          >
          </el-tree>
     </nav>
     </template>

data:存放要渲染的数据

node-key:每个树节点用来作为唯一标识的属性,整棵树应该是唯一的

props:配置选项

highlight- current:是否高亮当前选中节点,默认值是 false

render-content:树节点的内容区的渲染 Function,图标的渲染依靠这个方法

node-click:节点被点击时的回调

accordion:是否每次只打开一个同级树节点展开

2. JS 代码 

<script>
export default {
   data(){
     return {
      //菜单
      items:[
          {name:'首页',path:'Homepage',icon:"el-icon-s-home"},
          {name:'资源管理',path:null,children:[{name:'学科管理',path:'Object'},{name:'阶段管理',path:'Stage'},{name:'关卡管理',path:'Checkpoints'}]},
          {name:'人员管理',path:null,children:[{name:'用户管理',path:'Student'},{name:'激活用户',path:'ActiveUser'}]},
          {name:'消息处理',path:null,children:[{name:'验收处理',path:'CheckProcess'},{name:'延期处理',path:'DelayProcess'}]},
          {name:'项目',path:'ProjectItem',icon:"el-icon-folder-opened",},
          {name:'看板',path:'Board',icon:"el-icon-data-line",}
      ],
      //配置显示的内容为属性名为 name 的值
      defaultProps: {
        label: "name",
      },
   }
 },
 methods:{
   // 渲染函数
    renderContent(h, { node, data, store }) {
      return (
        <span>
          <i class={data.icon}>&nbsp;&nbsp;</i>
          <span>{node.label}</span>
        </span>
      );
    },
     //点击最后一个子节点要有相应方法
    handleNodeClick(data, node) {
      const children = this.$refs.tree.getNode(data);
      if (children.data.path === null) {
        return;
      } else {
        this.$router.push({
          name: children.data.path,
        });
      }
    },
 }
}
</script>

 3. 最终效果展示

二、搜索框组件的实现 

1. 页面布局

<template>
      <!-- 搜索框-->
    <div class="search">
      <form-input class="searchInput" placeholder=" 输入要查找的名称" v-model="filterText">
      </form-input>
    </div>
</template>

 v-model:绑定的是搜索框中的内容,根据搜索框中的内容对要展示的数据进行过滤展示

2. JS 代码

<script>
export default {
  data(){
   return {
     //搜索框
     filterText: "",
   }
 },
  computed: {
        //  输入检索内容
        tables() {
            const filterText = this.filterText;
            if (filterText) {
                // filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
                // 注意: filter() 不会对空数组进行检测。
                // 注意: filter() 不会改变原始数组。
            return this.tableData.filter((data) => {
                    // some() 方法用于检测数组中的元素是否满足指定条件;
                    // some() 方法会依次执行数组的每个元素:
                    // 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测;
                    // 如果没有满足条件的元素,则返回false。
                    // 注意: some() 不会对空数组进行检测。
                    // 注意: some() 不会改变原始数组。
             return Object.keys(data).some((key) => {
                        // indexOf() 返回某个指定的字符在某个字符串中首次出现的位置,如果没有找到就返回-1;
                        // 该方法对大小写敏感!所以之前需要toLowerCase()方法将所有查询到内容变为小写。
                        if (key == 'name') {
                            return String(data[key]).indexOf(filterText) > -1;
                        }
                    })
                })
            }
            return this.tableData;
        }
    },
}
</script>

tableData:表示从后台获取来的完整数据

tables:经过过滤后最终要展示在页面的数据

3. 最终效果展示 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: springboot+vue+elementui 是一种常见的前后端分离开发框架组合,其中 springboot 作为后端框架,提供了丰富的开发工具和便捷的配置方式;vue 作为前端框架,提供了组件化开发和响应式数据绑定等特性;elementui 则是一套基于 vue 的 UI 组件库,提供了丰富的 UI 组件和样式,可以快速搭建出美观的前端界面。这种组合方式可以提高开发效率,降低开发成本,是现代化 Web 应用开发的主流选择之一。 ### 回答2: Spring Boot、VueElementUI 三者都是现代企业级的 Web 开发框架,各自拥有特色和优势,同时也有着协同工作的潜力。 Spring Boot 是一款基于 Java 编写并运行的轻量级 Web 框架,其主要目标是简化 Spring 应用的搭建和设计。它提供了一个快速开发应用的高效率方式,使得开发者可以专注于业务逻辑的实现,而无需关注底层设施和配置文件细节。 Vue 是一个流行的 JavaScript 前端框架,它可以帮助开发者构建可复用和可扩展的网络应用程序。特别是其数据绑定和组件化系统,在开发高度交互的 UI 应用时具有很大的优势。 ElementUI 是一套基于 Vue前端 UI 组件库,它提供了多种常用的 UI 元素和样式。ElementUI组件样式比较简洁美观,同时还提供了灵活和自定义的主题功能,开发者可以根据自己的需求轻松实现不同的组件样式。 Spring Boot 和 Vue 配合使用时,前端使用 Vue 展示,后端使用 Spring Boot 导出数据和服务。Vue 支持使用 Axios、Fetch 等方式进行异步请求,从而获取后端数据,以响应前端的操作。ElementUI 可以帮助开发者快速搭建整个 Web 应用程序的前端界面,减轻前端开发的工作量。 综上所述,Spring Boot、VueElementUI 三者共同使用,可以在开发 Web 应用时提高开发效率,更快地构建出高质量的应用程序。同时,该组合也能够帮助开发者在后端和前端之间良好地维持数据的交互和一致性。 ### 回答3: SpringBoot是一款开源的Java开发框架,它主要用于快速构建企业级应用程序。SpringBoot通过减少XML配置来简化Spring应用程序的开发过程,并且内嵌了Tomcat、Jetty和Undertow等常用的Web容器,从而大大简化了Web应用程序的部署步骤。 Vue是一款前端框架,它可以帮助开发人员更加轻松地构建复杂的单页面应用程序。Vue的主要特点是组件化和响应式编程。Vue提供了强大的模板和数据绑定功能,使得开发人员可以很方便地实现一些复杂的应用程序。 ElementUI是一款基于Vue.js的UI框架。它提供了一系列高质量的组件,如表格、日期选择器、对话框、按钮等等,可以大大加速Web应用程序的开发过程。ElementUI提供了丰富的主题和设计语言,可以满足不同应用场景的需要。 SpringBoot与VueElementUI的结合,可以帮助开发人员更快地构建现代化的Web应用程序。SpringBoot提供了强大的后端支持,包括数据访问层、事务管理等等,可以快速构建可靠的后端服务。VueElementUI则提供了丰富的前端组件和模板,可以帮助开发人员更快地搭建出漂亮的界面。同时,Vue的响应式编程和ElementUI组件化设计可以帮助开发人员更快地实现复杂的前端逻辑。 总之,SpringBoot、VueElementUI的结合可以帮助开发人员更快地构建高质量的Web应用程序,提供了丰富的工具和组件,可以满足不同应用场景的需要。它们的协作和衔接,展示了强大的开发效率和组件之间的友好结合。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值