截止昨日,前后端接口都开发了,那么就该运行前后端程序,正式测试一下。

我们设计的前后端分离的流程大致如上图所示,所以说,我们今天主要是将前后端都跑起来,然后把后端返回的数据渲染到页面上。这样一个简单的前后端分离的项目算是完成了。
前端开启
Npm run serve

后端开启
Go run main.go

打开前端,打开pod页面不显示信息,什么问题,调试信息表示如下:


这个错误表示浏览器阻止了浏览器发出的
xmlhttprequest请求'http://localhost:8080/pods'
,因为目标资源没有设置cors(跨源资源共享)策略中所需的'access-control-allow-origin'响应头。这是一种基于安全原则的浏览器机制,它可以防止网站通过脚本等方式访问未经授权的外部资源,从而确保用户数据和隐私的安全性。
那么怎么设置,下面介绍一番
import "github.com/gin-contrib/cors"
r := gin.Default()// 配置cors中间件config := cors.DefaultConfig()config.AllowOrigins = []string{"http://example.com"} // 允许跨域访问的域名config.AllowMethods = []string{"GET", "POST", "PUT", "DELETE"}r.Use(cors.New(config))

到这跨域的请求资源的问题得到解决。

这里就是一个简单的表格加一个分页功能展示,从后端返回的k8s中kube-system命名空间的pod相关的信息,包括名字、命名空间、创建时间的功能,当然还可以根据需求,添加其他功能,比如查看IP。

比如查看状态:

那么如何实现呢,就是先要在vue页面中用之前学的方法,添加一个表格,然后使用分页功能,这些基础的前面已经说了,这里就不说了,关键是如何将后端数据展示在数据表里面呢。可以使用之前介绍的双花括号来插值显示后端数据,利用v-for循环遍历存返回的数据信息,也可以使用prop这个功能,这里说一下prop这个知识点,prop是一种向子组件传递数据的方式,类似于React中的props。通过prop,父组件可以向子组件传递数据,子组件可以在props中接收这些数据并使用。
举个例子:
<template><child-component :prop1="value1":prop2="value2"></child-component></template><script>import ChildComponent from'./ChildComponent.vue'export default {components: {ChildComponent},data() {return {value1: 'hello',value2: 'world'}}}</script>
这里面定义了hello world的值,在父组件是用子组件的时候,通过vbind将数据绑定到子组件中的props中,然后子组件中,可以定义prop接受父组件传递的数据:
<template><div><p>{{ prop1 }}</p><p>{{ prop2 }}</p></div></template><script>export default {props: {prop1: {type: String,required: true},prop2: {type: String,default: 'default value'}}}</script>
使用prop就是一种数据传递的方式,不同组件之间的数据可以交互,提高复用性和可维护性。





