<body> <ul> </ul> <!-- <script src="axios.js"></script> --> <!-- <script src="axio1.js"></script> --> <script src="ajax.js"></script> <script> // let oUl = document.querySelector("ul"); let data = { current: 1, pagesize: 112, } let oUl = document.querySelector("ul"); ajax({ url: "http://localhost:8888/goods/list", type: "get", data, author: true, //需要认证 success: function (resData) { resData = JSON.parse(resData); let data = resData.list; // console.log(data); let html = ""; data.forEach(v => { // console.log(v) html += `<li> <img src="${v.img_big_logo}"> <p>${v.title}</p> <p>¥${v.price}</p> </li>`; }); oUl.innerHTML = html }, }); </script> </body> 如何把渲染出来的内容换成超链接
时间: 2024-02-10 18:34:05 浏览: 30
可以在生成的 li 标签中包裹一个 a 标签,设置其 href 属性为对应的链接地址。例如,将商品的标题作为链接文字,链接地址为商品详情页面:
```
data.forEach(v => {
html += `<li>
<a href="${v.link}">
<img src="${v.img_big_logo}">
<p>${v.title}</p>
<p>¥${v.price}</p>
</a>
</li>`;
});
```
其中,`v.link` 为商品详情页面的链接地址。生成的 li 标签中包含了一个超链接,显示商品的标题,点击后可以跳转到对应的商品详情页面。
相关问题
用react-hooks 帮我实现对axios的二次封装
以下是使用React Hooks对Axios进行二次封装的示例代码:
```javascript
import { useState, useEffect } from 'react';
import axios from 'axios';
const useAxios = (url, method, body = null, headers = null) => {
const [response, setResponse] = useState(null);
const [error, setError] = useState(null);
useEffect(() => {
axios({
method: method, url: url,
data: body,
headers: headers
})
.then(res => {
setResponse(res.data);
})
.catch(err => {
setError(err);
});
}, [url, method, body, headers]);
return { response, error };
};
export default useAxios;
```
在这个示例中,我们使用了useState和useEffect两个React Hooks。useState用于在组件中存储状态,而useEffect用于在组件渲染时执行副作用操作。我们将Axios请求封装在useAxios自定义钩子中,并将url,method,body和headers作为参数传递。在useEffect中,我们使用Axios发送请求,并根据响应设置状态。最后,我们返回一个包含响应和错误的对象。
使用示例:
```javascript
import useAxios from './useAxios';
const MyComponent = () => {
const { response, error } = useAxios('https://jsonplaceholder.typicode.com/posts', 'get');
if (error) return <div>Error: {error.message}</div>;
if (!response) return <div>Loading...</div>;
return (
<ul>
{response.map(post => (
<li key={post.id}>{post.title}</li>
))}
</ul>
);
};
```
在这个示例中,我们使用useAxios钩子从https://jsonplaceholder.typicode.com/posts获取帖子列表。我们根据响应渲染帖子列表,如果出现错误,则显示错误消息,如果响应尚未返回,则显示加载消息。
创建一个jenkins-client-java + Vue前端操作数据看板的项目
您需要完成以下步骤来创建一个Jenkins + Vue的操作数据看板项目:
1. 创建一个Maven项目
```
mvn archetype:generate -DgroupId=com.example -DartifactId=jenkins-dashboard -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
```
2. 添加以下依赖项到pom.xml文件中:
```
<dependencies>
<dependency>
<groupId>com.offbytwo.jenkins</groupId>
<artifactId>jenkins-client</artifactId>
<version>0.3.10</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
```
3. 创建一个名为“JenkinsClientService”的Java类,并添加以下代码:
```
import com.offbytwo.jenkins.JenkinsServer;
import com.offbytwo.jenkins.model.Build;
import com.offbytwo.jenkins.model.BuildResult;
import com.offbytwo.jenkins.model.BuildWithDetails;
import com.offbytwo.jenkins.model.Job;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class JenkinsClientService {
private JenkinsServer jenkins;
public JenkinsClientService() throws URISyntaxException {
jenkins = new JenkinsServer(new URI("http://localhost:8080"), "admin", "admin");
}
public List<String> getJobs() throws IOException {
Map<String, Job> jobs = jenkins.getJobs();
return jobs.values().stream().map(Job::getName).collect(Collectors.toList());
}
public BuildWithDetails getLastBuild(String jobName) throws IOException {
Job job = jenkins.getJob(jobName);
Build lastBuild = job.getLastBuild();
return lastBuild.details();
}
public BuildResult getBuildResult(String jobName, int buildNumber) throws IOException {
Job job = jenkins.getJob(jobName);
Build build = job.getBuildByNumber(buildNumber);
return build.details().getResult();
}
}
```
请将“http://localhost:8080”,“admin”和“admin”替换为您的Jenkins服务器URL,用户名和密码。
4. 创建一个名为“JenkinsController”的Java类,并添加以下代码:
```
import com.offbytwo.jenkins.model.BuildResult;
import com.offbytwo.jenkins.model.BuildWithDetails;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
import java.util.List;
@RestController
public class JenkinsController {
@Autowired
private JenkinsClientService jenkinsClient;
@GetMapping("/jobs")
public List<String> getJobs() throws IOException {
return jenkinsClient.getJobs();
}
@GetMapping("/jobs/{jobName}/lastBuild")
public BuildWithDetails getLastBuild(@PathVariable String jobName) throws IOException {
return jenkinsClient.getLastBuild(jobName);
}
@GetMapping("/jobs/{jobName}/builds/{buildNumber}/result")
public BuildResult getBuildResult(@PathVariable String jobName, @PathVariable int buildNumber) throws IOException {
return jenkinsClient.getBuildResult(jobName, buildNumber);
}
}
```
5. 创建一个名为“app.js”的Vue文件,并添加以下代码:
```
<template>
<div id="app">
<h1>Jenkins Dashboard</h1>
<ul>
<li v-for="job in jobs" :key="job">
<h2>{{ job }}</h2>
<p>Last build status: {{ getLastBuildStatus(job) }}</p>
<button @click="buildJob(job)">Build now</button>
</li>
</ul>
</div>
</template>
<script>
import axios from 'axios';
export default {
name: 'app',
data() {
return {
jobs: []
}
},
mounted() {
axios.get('/jobs')
.then(response => {
this.jobs = response.data;
});
},
methods: {
getLastBuildStatus(jobName) {
axios.get(`/jobs/${jobName}/lastBuild`)
.then(response => {
return response.data.result;
});
},
buildJob(jobName) {
axios.post(`/jobs/${jobName}/build`)
.then(response => {
console.log(response.data);
});
}
}
}
</script>
```
6. 创建一个名为“index.html”的文件并添加以下代码:
```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Jenkins Dashboard</title>
</head>
<body>
<div id="app"></div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="app.js"></script>
</body>
</html>
```
7. 创建一个名为“App.java”的Java类,并添加以下代码:
```
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
```
8. 运行以下命令启动应用程序:
```
mvn spring-boot:run
```
现在,您已经创建了一个Jenkins + Vue操作数据看板项目。您可以通过在浏览器中打开“http://localhost:8080”来查看该应用程序。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)