今天内容1: 用Vue实现了进一步的查询,通过ID进行条件查询 这个内容基本上是在之前的整合的基础上做的修改 流程为: 页面添加搜索框
<el-table-column align="right"> <template slot="header" slot-scope="scope"> <div style="display: flex; align-items: center;"> <el-input v-model="searchText" size="mini" placeholder="输入关键字搜索"/> <el-button size="mini" @click="search"> 搜索 </el-button> </div> </template> <template slot-scope="scope"> <el-button size="mini" @click="edit(scope.$index, scope.row)">编辑 </el-button> <el-button size="mini" type="danger" @click="remove(scope.$index, scope.row)">删除 </el-button> </template> </el-table-column>
这里有一个点是要绑定搜索框和搜索内容,关于这一点
需要先在data中定义一个输入内容的属性
data() { return { searchText: '', // 初始化为空字符串 // 其他数据属性 }; },
然后需要在点击按钮的实现方法中获取到这个属性
<el-input v-model="searchText" size="mini" placeholder="输入关键字搜索" />
computed: { search() { const searchText = this.searchText; if (searchText.trim() === '') { // 如果搜索文本为空,执行这个逻辑 this.$axios({ method: 'get', url: 'http://localhost:9090/student/findAll', }).then((response) => { this.tableData = response.data; }).catch((error) => { // 处理错误 console.error('请求出错:', error); }); } else { // 如果搜索文本不为空,执行这个逻辑 // 使用搜索文本构建 URL,并发送搜索请求 const url = `http://localhost:9090/student/search/${searchText}`; this.$axios({ method: 'get', url: url, }).then((response) => { this.tableData = response.data; }).catch((error) => { // 处理错误 console.error('请求出错:', error); }); } }, },
这里用了if else进行区分,是为了实现输入内容进行对应查询,如果没输入任何内容默认查询全部
关于外部这个computed 为什么不用method
computed
是Vue.js中的计算属性,它用于根据依赖的数据动态计算衍生的属性。计算属性的值在依赖数据发生变化时自动更新,并且会进行缓存,只有依赖的数据发生改变时,计算属性才会重新计算。计算属性通常用于根据已有的数据计算、过滤、映射或组合出新的数据,以供模板中使用。计算属性使用时无需加括号,直接像读取属性一样使用即可。
说人话就是 computed是动态的,实时变化,然后语法和method有一些区别
我也把search方法放到method下做了验证,得出的结论是,如果使用method,需要点击搜索按钮才能进行查询,而放在computed下会自动进行变化
就用户体验来说,肯定是computed更好一些。
标签:Vue,computed,searchText,搜索,整合,error,属性,method,Springboot From: https://www.cnblogs.com/Arkiya/p/17745642.html