当前位置: 首页 > news >正文

衡阳市网站建设jsp怎样做网站

衡阳市网站建设,jsp怎样做网站,网上购物都有哪些平台,深圳市住建局招标中心源代码仓库: Github仓库【electron_git】 Commit : bb40040 Github Desktop 页面分析 本节目标: 1、实现类似Github Desktop的「空仓库」提示页 2、添加本地仓库逻辑编写从 Github Desktop 我们看到 他的 主要页面分为三个区域 Head头部区域…

源代码仓库:
Github仓库【electron_git】

Commit :
bb40040

Github Desktop 页面分析

本节目标:
1、实现类似Github Desktop的「空仓库」提示页
2、添加本地仓库逻辑编写

在这里插入图片描述

从 Github Desktop 我们看到 他的 主要页面分为三个区域

  • Head头部区域 (操作分支)
  • Side侧边栏区域 (查看更新的文件)
  • Main主区域 (查看 文件 Diff内容)

在这里插入图片描述

Tip:其实初始化的时候只有一个类似main的界面,这里因为我已经添加过store了,所以有head和side部分。

一、目录搭建及依赖安装

  • Ant Design 官网
  • Redux 官网
  • react-router 官网
  • localforage官网
# 安装依赖
pnpm install antd --save
pnpm install @reduxjs/toolkit react-redux
pnpm add -D sass-embedded
pnpm install react-router-dom# 简化持久化存储 根据 IndexedDB 和 WebSQL 支持进行降级策略
pnpm install localforage

主要文件

在这里插入图片描述

二、IPC 通信模块设计与实现

渲染进程 预处理脚本 主进程 操作系统 调用 window.api.chooseFolder() ipcRenderer.invoke('chooseFolder') 显示文件选择对话框 返回选择的路径 返回路径结果 返回 Promise 结果 更新 Redux 状态 渲染进程 预处理脚本 主进程 操作系统

核心实现流程

1. IPC 模块注册机制

// ipc/index.js
import setupGitIPC from './git'
import setupChooseFileIPC from './operateTheFile'/*** 聚合所有 IPC 通信模块* 新增 IPC 模块需在此处引入并调用*/
export async function setupIPC() {setupGitIPC()setupChooseFileIPC()
}
// main/index.js
import { setupIPC } from '../ipc'app.whenReady().then(() => {setupIPC() // 注册所有 IPC 通信createWindow()// ...其他初始化逻辑
})

2. 文件选择器实现

// operateTheFile/index.js/*** 系统级文件夹选择对话框* @returns {Promise<string|null>} 选择的文件夹路径*/
const chooseFolder = async () => {const result = await dialog.showOpenDialog(mainWindow, {properties: ['openDirectory']})if (result.filePaths.length > 0) {return result.filePaths[0]}
}
const setupChooseFileIPC = () => {ipcMain.handle('chooseFolder', () => {return chooseFolder()})
}
3.预处理层暴露 API
import { contextBridge, ipcRenderer } from 'electron'
import { electronAPI } from '@electron-toolkit/preload'// Custom APIs for renderer
const api = {/*** 打开文件夹选择对话框* @returns {Promise<string|null>}*/chooseFolder: () => {return ipcRenderer.invoke('chooseFolder')}
}

4. 渲染进程调用示例

app.jsx中我们点击button按钮时会调用window.api.chooseFolder唤起原生文件选择器操作文件

function App() {const gitStroe = useSelector((state) => state.gitStore)const dispatch = useDispatch()const outlet = useRoutes(router)// 定义一个异步函数 setRepoPath,用于选择文件夹并设置仓库路径const setRepoPath = async () => {// 调用 window.api.chooseFolder() 弹出文件夹选择对话框,并等待用户选择文件夹const repoPath = await window.api.chooseFolder()// 检查 gitStroe.repoPaths 中是否已经包含选择的文件夹路径if (!gitStroe.repoPaths.some((item) => item.path === repoPath)) {// 如果不包含,则将选择的文件夹路径添加到 gitStroe.repoPaths 中,并更新仓库名称dispatch(setRepoPaths([...gitStroe.repoPaths, { path: repoPath, name: repoPath.split('/').pop() }]))// 设置当前仓库为选择的文件夹名称dispatch(setCurrentRepo(repoPath.split('/').pop()))}}return (<div className="app-container">......// 点击按钮触发 setRepoPath 函数<Buttonicon={<DatabaseOutlined />}size="large"style={{ marginLeft: 20 }}onClick={setRepoPath}>Add Local Repository</Button></div></div>)}</div>)
}export default App
http://www.dtcms.com/a/405634.html

相关文章:

  • 做阿里网站的分录小程序内容编辑
  • 如何外贸seo网站建设软件 网站模板
  • 广州 营销型网站建设公司十堰市茅箭区建设局网站
  • 建一个网站需要哪些东西wordpress多媒体主题
  • 给网站公司做网站品牌宣传网站
  • 四川省建设厅网站为什么打不开有哪些做设计交易网站有哪些
  • 企业邮箱app成都正规搜索引擎优化
  • 做网站时的尺寸怀化网站建设公司
  • 平台类网站有哪些seo服务套餐
  • 舒城做网站郑州建站网站的公司
  • 网站建设公司知名企业wordpress 在线手册
  • 上海专业网站营销安丘建设网站
  • 设计一个公司网站多少钱成都网站建设公司哪家好
  • wordpress改站点标题搜索引擎推广策略
  • 威海好的网站建设公司win7怎么重新安装wordpress
  • 建网站如何备案江门做网站那家公司好
  • 西部数码网站管理助手 伪静态centos一键wordpress
  • 新媒体 网站建设 影视wordpress 悬浮页
  • 中小企业做网站贷款家庭优化大师
  • 二级域名网站建设规范网站开发工程师优势
  • 政务移动门户网站建设方案网站后台更新没有变化
  • 可以用什么网站做mc官方seo扣费系统源码
  • 苏州做网站怎么样大型网站的制作
  • 网站广告推广哪家好黄骅港中远海运物流有限公司
  • 可以做软文的网站怎么制作代码
  • 做网站建设客户从哪里找wordpress突然打不开
  • 大型网站如何做别名网站系统报价方案模板下载
  • 界面十分好看的网站网站内页是什么
  • 外贸网站推广 sit网站建设 自己的服务器
  • 电商网站建设实训心得手绘元素素材