课程列表前端(1)| 学习笔记

简介: 简介:快速学习课程列表前端(1)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):课程列表前端(1)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/667/detail/11474


课程列表前端(1)

 

内容介绍:

一、在 api 创建 js 文件,引入接口地址

二、在页面中进行调用

三、在分类中进行遍历

四、对课程进行 v-if 判断


一、在 api 创建 js 文件,引入接口地址

1、查询课程列表的方法

第一步操作,在 API 里面创建一个JS文件,引入接口地址,进入 API,在 API 中,创建课程,修改名字为 cos。

点击 JS,进行复制,复制之后修改一下方法,第一个方法为条件查询再分页,更换一下课程名字为 get。 

而在方法中,按照写过的接口,有三个参数,第一个参数是当前页,第二个为每月记录数,第三个是对象,所以有三个参数需要传递,然后写三个当前页每页技术和查询对象。

SearchObj 为查询对象的三个条件,接下来写一下接口地址,“/eduservice/coursefront”,详情请看代码。

@RestController

@RequestMapping("/eduservice/coursefront)

@CrossOrigin

public class CourseFrontController {

@Autowired

Private EduCourseService courseService:

//1 条件查询带分页查询课程

@PostMapping(“getFrontCourseList/{page}/{limit}")

public R getFrontCourseList (@PathVariable long page,  

@PathVariable long page

@RequestBody(required = false) CourseFrontVo courseFrontVo) {

Page<EduCourse> pageCourse = new Page<>(page,limit) ;

Map<String.Object> map = CourseService.

getCourseFontList(pageCourse,courseFrontVo) ;

//返回分页所有数据

return. R. ok().data(map);

}

2、查询所有分类的方法

//添加课程分类

//获取上传过来文件,把文件内容读取出来

@PostMapping("addSubject)

public R addSubject (MultiprtFile file) {

//上传过来excel文件

subjectService.saveSubject(file, subjectservice) ;

return R.ok() ;

}

//课程分类列表(树形)

@GetMapping("gerAllSubject)

public R getAlISubject()  {

//list集合泛型是一级分类

List<OneSubject> list = SUBJECTSERVICE

GetALLONEIWOSUBJECT ();

return R.ok().data(”list”,list);

getCourselist(page, limit , search0bj) {returnrequest({url: /eduservice/coursefront/ getFrontCourseList/${page}/${limit} ,

method:'post',data:search0bj})}

import request from ‘@/utils/request

export default { 

//条件分页课程查询的方法

getCourseList(page, limit, searchObj)

return request({

url: /eduservice/coursefront/getFrontCourseList/

${page}/${limit} ,

method:post,

data:  searchObj

} )

//讲师详情的方法

getTeacherInfo(id) { 

return request( {

url:/eduservice/teacherfront/getTeacherFrontInfo/${id}’,

method: get 

} )

 

二、在页面中进行调用

课程列表页面,在 course 里面有一个 index 目录,就是课程列表。

先引入 course

第一个 page 代表当前页,然后第二个 data 这个值,就是课程列表的数值,写数字、写对象都可以,第三个是一级分类列表,

还有一个二级分类,下面这部分代表二级分类里边有这个,这个是一级分类的集合,还有二级分类集合,下面还有一个叫 SearchObj 是查询条件的表单对象。

点击外语考试,下面显示二级分类,点价格最新(包括关注度等值),每次点击这个值都有颜色的变化。比如这个外语考试变成红色,点价格,它的背景色变成绿色,把直线放置,条件查询,选中效果值,红色变成绿色。

初始值就可以定出。接下来写方法,首先用密布结构来写。

import courseApi from @/api/course'

exportdefault{data({return{page:1,//当前页

data:{},//课程列表

subjectNestedList:[ ], // 一级分类列表

subSubjectList: [ ], //二级分类列表

searchobj:{}, //查询表单对象

oneIndex:-1, twoIndex:-1,buyCountSort:"",gmtCreateSort:"",priceSort:""

}

},

created() {

//课程第一次查询

this.initCourseFirst( )

//一级分类显示

this.initSubject( )

},

methods:{

//1 查询第页数据

initCourseFirst(){courseApi.getCourselist(1,8,this.search0bj).then(response => {

this.data=response.data.data    } )

},

//2 查询所有一级分类

initSubject(){courseApi.getAllSubject().then(response=>{this. subjectNestedList = response.data.data.list

})

},

//3分页切换的方法

gotoPage(page) {

courseApi.getCourseList(page,8,this.search0bj).

then( response => {

this.data=response.data.data    })

}

};

</script>

 

三、在分类中进行遍历

在页面位置中,首先找到“课程类别”—显示所有的一级分类,下面的位置会显示课程数据。

<li v-for="(item, index)in subjec tNestedL ist" : key="index"><a title="数据库"

href="#">{{item.title}}</a></li>

<ulclass-"clearfix"><liv-for="(item, index) in subSubjectlist" :key=" index">

<a title="职称英语"

href="#">{{item.title}}</a></li>

<!-- /无数据提示结束-->

<article v-if="data. total>0" class="comm-course- list"><ulclass="of"id="bna"><liv-for-"itemindata.items":key="item.id"><divclass="cc-l-wrap"><sectionclass="course-img"><img :src="item.cover" class=" img- responsive" :alt=" item. title"><divclass="cc-mask"><а hrеf="/соurѕе/1" tіtlе="开始学习" сlаѕѕ="соmm-btn с-btn-1">开始学习</а>

</div>section><h3class="hLh30txt0fmt10"><a href=" /course/1" :title="item. title" class="course-title fsize18 c-333">{{item.title}}</a>

</h3>

 

四、对课程进行 v-if 判断

<!-- /无数据提示开始-->

<section class="no- data- wrap" v- if="data. total==0" ><em class="icon30 no- data- ico">  

</em><span class="c-666 fsize14 ml10 vam">没有相关数据,小编正在努力整理中...</ span>

</section><!-- /无数据提示结束-->karticlev- if="data. total>0" class="comm-course-list"><ul class="of" id="bna">

相关文章
|
24天前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
35 0
|
4月前
|
存储 开发框架 前端开发
在Vue&Element前端项目中,对于字典列表的显示处理
在Vue&Element前端项目中,对于字典列表的显示处理
|
2月前
|
前端开发 程序员
【前端web入门第二天】01 html语法实现列表与表格_合并单元格
本文介绍了HTML中的列表与表格的使用方法。列表包括无序列表(`&lt;ul&gt;`嵌套`&lt;li&gt;`)、有序列表(`&lt;ol&gt;`嵌套`&lt;li&gt;`)和定义列表(`&lt;dl&gt;`嵌套`&lt;dt&gt;`和`&lt;dd&gt;`)。
59 19
|
2月前
|
前端开发
【前端web入门第五天】03 清除默认样式与外边距问题【附综合案例产品卡片与新闻列表】
本文档详细介绍了CSS中清除默认样式的方法,包括清除内外边距、列表项目符号等;探讨了外边距的合并与塌陷问题及其解决策略;讲解了行内元素垂直边距的处理技巧;并介绍了圆角与盒子阴影效果的实现方法。最后通过产品卡片和新闻列表两个综合案例,展示了所学知识的实际应用。
50 11
|
3月前
|
JavaScript 前端开发 程序员
后端程序员的前端必备-jQuery核心学习笔记
后端程序员的前端必备-jQuery核心学习笔记
57 13
|
3月前
|
存储 开发框架 前端开发
EAV模型(实体-属性-值)的设计和低代码的处理方案(3)-- 实体属性定义及前端列表展示和数据录入处理
EAV模型(实体-属性-值)的设计和低代码的处理方案(3)-- 实体属性定义及前端列表展示和数据录入处理
|
4月前
|
开发框架 前端开发 JavaScript
循序渐进VUE+Element 前端应用开发(8)--- 树列表组件的使用
循序渐进VUE+Element 前端应用开发(8)--- 树列表组件的使用
|
24天前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
107 2
|
24天前
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
|
24天前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
下一篇
无影云桌面