探索 Electron:打造深度书籍挖掘机的搜索体验

Electron是一个开源的桌面应用程序开发框架,它允许开发者使用Web技术(如 HTML、CSS 和 JavaScript)构建跨平台的桌面应用程序,它的出现极大地简化了桌面应用程序的开发流程,让更多的开发者能够利用已有的 Web 开发技能来构建功能强大且跨平台的应用程序,这对于提升开发效率和应用程序的快速交付具有重要意义。

今天借助electron实现添加网址的应用功能,这里我们通过electron-vite框架搭建项目,详细的配置请参考我之前的文章:地址 这里不再赘述,接下来开始项目的正式讲解:

这里我们在头部添加一个添加按钮和搜索框,用于对数据进行处理,如下所示:

html 复制代码
<template>
    <div class="home">
        <div class="header">
            <el-input v-model="keyword" style="width: 100%" placeholder="请输入关键字" />
            <el-button type="primary" :icon="Search" @click="handleSearch">搜索</el-button>
        </div>
    </div>
</template>

然后这里我们调用axios发送get请求获取书籍相关信息,为了避免跨域和安全策略限制问题,我们可以在主进程和index.html处设置相关配置,如下:

接下来我们开始编写相应的接口函数获取书籍书籍,代码如下所示:

javascript 复制代码
<script setup lang="ts">
import { ref } from 'vue'
import { Search } from '@element-plus/icons'
import axios from 'axios'

const keyword = ref('')

// 获取接口函数
const getBooksData = async () => {
    let res = await axios.get(`https://weread.qq.com/web/search/global?keyword=${keyword.value}&maxIdx=0&fragmentSize=120&count=20`)
    console.log(res)
}
// 搜索事件
const handleSearch = () => {
    getBooksData()
}
</script>

搜索到的数据如下所示:

获取到数据之后,接下来开始对页面内容进行一个页面的搭建:

html 复制代码
<template>
    <div class="home">
        <div class="header">
            <el-input v-model="keyword" style="width: 100%" placeholder="请输入关键字" />
            <el-button type="primary" :icon="Search" @click="handleSearch">搜索</el-button>
        </div>
        <div class="book-content">
            <div class="book-item" v-for="item in bookList" :key="item.searchIdx">
                <div class="img"><img :src="item.bookInfo.cover" alt="图片"></div>
                <div class="title">{{ item.bookInfo.title }}</div>
                <div class="author">作者 ------ <span>{{ item.bookInfo.author }}</span></div>
                <div class="desc">{{ item.bookInfo.intro.substring(0, 25) + '...' }}</div>
            </div>
        </div>
    </div>
</template>

这里我们在App根组件设置一下滚动条的样式:

css 复制代码
::-webkit-scrollbar {
  width: 5px; 
  height: 10%
}

::-webkit-scrollbar-track {
  background-color: #f1f1f1;  
   border-radius: 5px;

} 
 
/* 滚动条的滑轨背景颜色 */
  ::-webkit-scrollbar-thumb {
  background-color: #102ec2;
  border-radius: 10px;
} 

最终呈现的效果如下所示:

项目地址:地址

相关推荐
不一样的故事1265 小时前
芯片设计是一个高度复杂、分工精细的系统工程
数据结构·经验分享
郭wes代码5 小时前
纯 CSS+JS 实战:手搓一张支持自定义的通用金色电子奖状(万字详细拆解)
前端·javascript·css
用户847181054196 小时前
DeepAgents.js 教程 06—— 跨会话长期记忆(Memory与AGENTS.md)
javascript·agent
阿黎梨梨6 小时前
React 表单处理与性能优化:从入门到进阶
前端·react.js
Whbbit19996 小时前
发布自己的 shadcn-vue 扩展组件,并支持 CLI 安装
前端·开源
Tian_Hang6 小时前
Vue3 父子组件通讯
前端·javascript·vue.js
breeze jiang6 小时前
React memo、useCallback 与 useMemo:父组件多状态时如何减少无效渲染
前端·javascript·react.js
小黑技术栈6 小时前
Java前端基础到入门——16day
java·开发语言·前端
NoteStream6 小时前
【C语言基础】分支和循环(上)
c语言·开发语言·c++·经验分享·笔记·算法·c#
朱涛的自习室7 小时前
从 Prompt 到 Graph:AI 工程的进化史
android·前端·人工智能