根据开源的 API 制作论坛项目

这篇博客详细介绍了如何根据开源API制作论坛项目,包括页面样式设计、功能实现如文章分类展示、评论点赞、用户登录、文章收藏等,以及项目打包发布到网上的步骤。通过创建组件、封装请求、使用Element-UI等技术,实现了论坛的完整功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


准备

1)创建项目
2)现在图中第三个进行按照
在这里插入图片描述

  • 3)选择内容中的蓝色字内容安装,其中第二个项中的按空格进行选中
    在这里插入图片描述
  • 4)启动项目,当打开页面出现 About 则证明上面选项中没有出现错误
    在这里插入图片描述
  • 5)安装 element-ui
    在这里插入图片描述
    6)借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。
    在这里插入图片描述
    7)在项目的 bable.config.js中项目中输红色框里面的内容

在这里插入图片描述

  • 8)在项目的src 文件夹中创建 一个 plugins 文件夹,并且创建一个element.js
    在这里插入图片描述
  • 9)在项目的 AboutView.vue 中创建一个 <el-button>按钮并且重启项目
    在这里插入图片描述
  • 当出现 这个按钮的时候证明,以上步骤没有出现错误

在这里插入图片描述

  • 10)删除 components ,views里面的文件内容
    在这里插入图片描述
  • 11)创建公共样式,style.less 并导入 到 main.js
    在这里插入图片描述

做完以上步骤,那么我们的准备就完成了

1、功能的实现

1.1、 页面的样式

在这里插入图片描述
导航:

<template>
<!-- 导航栏 -->
  <header>
    <div class="inner">
      <!-- 存放logo -->
      <router-link to="/">
         <img src="../assets/img/logo.png" alt="" class="logo">
      </router-link>
      <!-- 导航栏右边 -->
      <div class="header-right">
        <router-link class="home-link" to="/">首页</router-link>
          <!-- <router-link class="home-link" to="/">未读消息<router-link> -->
        <router-link to="/">
           <el-button type="info" size="medium"  icon="el-icon-user-solid">登录</el-button>
        </router-link>
        <!-- <router-link class="home-link" to="/">退出<router-link> -->
      </div>
    </div>
  </header>
</template>

<script>
export default {
   
   };
</script>

<style lang='less'>
header {
   
   
  width: 100%;
  height: 50px;
  background-color: rgb(44, 51, 51);
  position: fixed;
  top: 0;
  width: 100%;
  // 固定导航
  .inner {
   
   
    width: 72.5%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    height: 50px;
    justify-content: space-between;
    .logo {
   
   
      width: 140px;
      height: 60px;
      margin-top: 5px;
    }
    .el-button--info {
   
   
      background-color: rgb(90, 89, 83);
      border-color: rgb(90, 89, 83);
      padding: 7px 7px;
    }
    .home-link{
   
   
      color: #fff;
      margin-right: 10px;
    }
  }
}</style>

首页

<template>
  <div class="home">
    <div class="nav">
      <router-link to="/">全部</router-link>
      <router-link to="/">精华</router-link>
      <router-link to="/">分享</router-link>
      <router-link to="/">问答</router-link>
      <router-link to="/">招聘</router-link>
      <router-link to="/">客户端测试</router-link>
    </div>
  </div>
</template>

<script>
export default {
   
   

}
</script>

<style lang='less'>
.home {
   
   
  width: 72.5%;
  margin: 0 auto;
  background-color: rgb(255, 255, 255);
  border-radius: 6px; // 圆角
  overflow: hidden;
  min-height: 80vh;
  .nav{
   
   
    background-color: rgb(190, 185, 185);
    padding: 10px;
    display: flex;
    align-items: center;
    a{
   
   
      margin-left: 10px;
      padding: 4px;
      color: rgba(66, 175, 72, 0.664);
      font-size: 14px;
      border-radius: 4px;
      background-color: rgb(190, 185, 185);
      font-weight: bolder;
    }
    a.activ{
   
   
      color: #fff;
      background-color: aqua;
    }
  }
}
</style>
</style>

router文件下的js,导首页
在这里插入图片描述
add.js
在这里插入图片描述

1.2、具体内容

1.2.1、结构画分

对于具体内容,我们可以分成两部分,一个是大的内容页,一个的具体的内容页
在这里插入图片描述

  • 对项目导入 axios 从而回去开源的 API: npm i axios

1.2.2、获取内容

对 axios 获取的内容进行 封装

// axios 封装
import axios from 'axios'

const instance = axios.create({
   
   
  // 请求基地址
  baseURL: " https://cnodejs.org/api/v1",
  timeout: 2000 // 控制时间 2000 = 2s,
  // 请求头的配置
  // headers
})

// 请求拦截器
// 例:提示开会员
instance.interceptors.request.use((config) => {
   
   
  // 请求头配置 config
  // config.auth = 'token'
  return config
})

// 响应拦截器
instance.interceptors.response.use((res) => {
   
   
  return res.data
})

// vue 全局加上 $http
// 在组件中使用 this.$http 就相当于 instance 了
// Vue.prototype.$http = instance
export default instance

对请求进行 二次封装 方便以后的管理
其中用到的类型有

  • tab 类别
  • page 页数
  • limit 条数 默认 为 40
    在这里插入图片描述
// 二次封装请求
import http 
001. 允许自定义积分,幸运,威望,等级,经验,认证会员,总版主,区版主,论坛版主的名称 114. 选择风格时加入预览(wensui建议) 115. HTML权限允许开放人员目前只要认证会员及版主即可(原先只允许版主) 116. 增进今**发帖,总发帖及欢迎新会员的功能,使显示数字与实际数据真正接近准确 隐藏版面的帖子也将被一同计入 117. 修正修改评价帖子时的不足 118. 加强短信通知功能:新注册用户,精华,评价,奖惩,删除,转移帖子 119. 修正首页明星插件不能单独显示第二行的错误 120. 后台重做论坛列表有一定的提速 121. 重新生成用户排名及凌晨数据更新现在更稳定了 122. 修复查看用户资料时,非版主的区版或总版主能显示担任信息的问题 123. 对后台或前台遗留的部分代码作了性能优化,有一定的速度提升 124. 现在用户修改资料后,一些不立即生效的信息现在可以立即生效 125. 为修改用户加入写入间隔检测,防止写盘类的破坏程序 126. 解决导航的菜单浏览器兼容问题,并支持多层菜单 取消CSS原先样式定义:TBMenu MenuBG MenuColor 127. 专业版本的搜索功能继续加强,修复原先的记录可能产生的重复记录 跳转页面更方便 131. 风格允许定义小局表格头尾部的HTML控制(比如顶部的导航) 133. 增加RSS订阅主题功能,可按版面或全部版面 134. 增加删除附件回赠(消耗)积分功能 135. 允许定义限制版面的帖子标题是否总是加密,限制标准开始统一 136. 新增迷你方式显示,支持显示版面帖子及内容,虚拟htm地址 统一游客状态,利于搜索引擎收录 137. 新增风格参数,SubjectFont,用来定义专题名称CSS样式 138. 修复后台修改用户资料版主类型用户错误的问题 139. 现在统计数据库的读写次数更加准确 145. 减轻密码找回功能暴力破解情况下带来的请求压力 146. 开始对切换版面带来的写入操作进行限制(WriteEvent) 147. 对游客作特殊处理,不需要额外的内存开销,并尽可能的减少硬盘资源开销 147. 改进在线用户显示分页查看性能及版面 148. 统一精华区与讨论区的显示界面 149. 解决cookie跨域访问问题 150. 退出时增加是否清空Cookie信息的选择 151. 解决一直以来论坛编码解码上的一个潜在错误 152. 对一些页面进行瘦身,进行JS文件分离 154. 总专题及版面专题,预载数据更稳定,而不需要事先访问版面 158. 允许自定义版面是否直接显示专题区 159. MP标签支持多媒体文件切换播放 160. 后台管理,批量更新 新增批量替换(更新)帖子内容功能达到某种目的 171. 兼容IP地址访问下的登录问题 172. 首页及二级版面的JS模板开始统一使用同一种模板,模板代码需要重新调整 模板调用采用JS包含,取消使用SERVER对像调用 173. 支持版面帖子列表的模板自定义显示 174. 支持定义某个分类在首页显示是否简约方式显示 175. 支持定义每个版面(或分类版面)之下的子版面,是否简约方式显示 178. 采用新的方式调用显示在线用户,兼容大部分主流浏览器 179. 修复专题显示在某些浏览器下显示混乱的问题 180. 专题调用显示采用新的方式,能兼容更多的浏览器 181. 支持投票直接显示功能,取消弹出窗口 182. 支持查看投票人员直接显示功能,取消弹出窗口 183. 投票采用POST 防止调用上的漏洞 184. 支持购买帖子及查看购买帖子成员直接调用显示 仍然支持购买再次确认的提示 185. 现在访问无权限查看的版面的帖子时不会再增加点击数了 186. 改善查看投票用户及购买帖子用户性能 187. 对查看帖子内容页面进行多重分析,再次进行性能优化,减轻服务器压力 190. Jmail邮件发送方式可以采用JMail.Message方式 若使用局域网或是本地SMTP服务器,邮件发送速度会很理想 192. 对于新注册的用户,因为邮件未能收到,可以使用忘记密码功能, 填写问题答案等信息,再次要求发送邮件 (要求在用户参数中设置忘记密码找回功能使用 即时更改密码并发送邮件) 193. 现在密码论坛要求输入密码时不会再提示错误信息 194. 支持查看帖子内容时的模板自定义 196. 解决论坛同其它系统编码不同可能产生乱码的问题 197. 对用户增加声望时,取消再奖励财富值,减少声望,也将不影响财富值 199. 插入部分隐藏标签时,提示先选择限制条件 200. 回复帖子标题并非必填项,*号不再显示 201. 普通用户能给帖子上颜色,并且将用户的财富值与此关联 Const LMTDEF_ColorSpend = 1 ' 设定帖子颜色消耗多少魅力值(财富) 当某用户有权限选择并且选择帖子标题类型(HTML,红绿蓝)时,帖子颜色选择无效 202. 发表只限某用户查看的帖子时,若对应用户不存在时将会提示错误 207. 允许设定用户一定积分值则不再需要验证码,包括发帖,短消息及编辑帖子 215. 后台风格模板选择,可以选择是否纯HTML输出,或是使用JS模板 218. 现在对发表内容有了更人性化的设计,开页将自动调节光标位置至填写内容处 219. 论坛短消息允许的ubb编码支持得更广 220. 升级论坛编辑器,主要从以下几个方面作了努力: .适当兼容Mozilla系列浏览器 .默认编辑方式全部设为高级(html)编辑方式,除非浏览器不支持,比如禁用JS .IE能享受所有功能,Mozilla系列拥有大部分编辑功能 .表情支持分页 .允许复制帖子内容为文本格式,高级编辑则复制为HTML文本内容 .全部编码转换在客户端完成,服务器端取消所有编码转换工作 .帖子表情取消一半 .修复或完善一些LeadCode中存在的错误或缺陷 .原先UBB参数设置中的发帖模式作用目前刚好相反,比如原先设为普遍模式现在将视为高级模式 .增强一些论坛编码 - 图片允许批定高度和宽度,格式为[IMG=边框粗细,排版方式,高度,宽度] - 允许单独指定文字的背景色,格式为[BGCOLOR=颜色]文字 221. 对来访用户浏览器及系统使用信息作了更新,现在将更准确 222. 预览帖子不需要再次提交,支持即时预览. 223. 改进菜单功能,对firefox等浏览器支持得更稳定,并开始支持多菜单功能 226. 附件图片缩略图现在开始允许自定义高宽 227. 允许设定附件最多允许同时上传的数量 229. 附件相关的模块作了大变动 - 支持比如百兆的大附件上传和下载 - 附件查看支持按版面来加密限制查看 - 附件存在的物理地址可以设置为不公开 - 现在下载的保存文件名称同作者上传的文件名称 - 删除相应帖子同时删除相应的附件 - 如果你的空间安装有Gfl SDK 上传的图片将自动生成缩略 - 生成的缩略大小可以在后台自定义 - 下载附件的密钥字符串可以在后台自行修改 - 允许设置最多一次发帖可以同时提交的附件数量 - 对于旧版的图片上传附件,提供升级程序,可以产生新的缩略图(支持TIF PSD等图像文件) - 附件允许插入帖子内容排版,未插入的将自动添加 - 允许修改附件内容,以及附件注释. 230. 用户头像上传功能修复,允许同步提交,并保留原先的图像组件缩小转换功能 231. 对防刷新的操作过频等问题作了更好的处理 232. 允许发布财富交易帖(财富为可定制名称)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fvcvv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值