vue3前端項目cursor rule

cursor rule是什么,以及怎么定義,看這個文章:

cursor中定義cursor rules_cursor rules如何編寫-CSDN博客

針對現有一個vue3的前端項目,寫了一份cursor rule,可以作為參考,內容如下(僅作為參考,需要根據自己項目實際情況,進行調整):

# Vue3規范## 項目概述
本項目基于 JavaScript + Vue3 + Vite5 + Pinia + Ant Design Vue 4.X 構建,適用于中大型管理類項目,支持現代前端開發流程。## Vue3 基礎規范### 項目命名
- **全部采用小寫方式, 以中劃線分隔。
舉例:`smart-admin`### 目錄、文件命名
- **目錄、文件名 均以 小寫方式, 以中劃線分隔。
舉例:`/head-search/`、`/shopping-car/`、`smart-logo.png`、`role-form.vue`### 單引號、雙引號、分號
- **html中、vue的template 中 標簽屬性 使用 雙引號
- **所有js中的 字符串 使用 單引號
- **所有js中的代碼行換行要用 分號## Vue3 組合式 API規范### 使用setup語法糖
- **組件必須使用 setup 語法糖
- **setup 大法方便簡潔
- **全局都要使用setup語法糖### 組合式Composition API 規范
- **組件內必須使用模塊化思想,把代碼 進行 拆分;
- **參照 vue3官方文檔對于 Composition Api的理解: 更靈活的代碼組織 ,組合式Api,即 Composition API 解決的是讓 相互關聯的代碼在一起,以更方便的組織代碼,故代碼格式如下:
即:將相關的 變量和代碼 寫到一起,并使用 行注釋 進行分塊
<script setup>
// 各種需要導入
import xxxxx;
import xxxxx;
import xxxxx;// -------- 定義組件屬性和對外暴露的方法、以及拋出的事件 --------
// -------- 表格查詢的 變量和方法 --------
// -------- 批量操作的 變量和方法 --------
// -------- 表單的 變量和方法 --------
</script>舉例,分成了兩個模塊,即:
模塊1:顯示 、隱藏操作的 變量和方法
模塊2:表單的 變量和方法### 模板引用變量Ref
- **使用 ref方法,參數為空 進行聲明變量
- **變量必須以 Ref為結尾
- **template中的ref 也必須以 Ref 為結尾### 變量和方法的注釋
- **變量必須都加上注釋
- **方法必須加上注釋## Vue3 組件規范### 組件文件名
組件文件名應該為 pascal-case 格式
舉例:
components
|- my-component.vue父子組件文件名
舉例:
components
|- todo-list.vue
|- todo-list-item.vue
|- todo-list-item-button.vue
|- user-profile-options.vue (完整單詞)### 組件屬性
組件屬性較多,應該主動換行。
舉例:
<MyComponent foo="a" bar="b" baz="c"foo="a" bar="b" baz="c"foo="a" bar="b" baz="c"/>### 模板中表達式
組件模板應該只包含簡單的表達式,復雜的表達式則應該重構為計算屬性或方法。復雜表達式會讓你的模板變得不那么聲明式。應該盡量描述應該出現的是什么,而非如何計算那個值。而且計算屬性和方法使得代碼可以重用。
舉例:
<template><p>{{ normalizedFullName }}</p>
</template>// 復雜表達式已經移入一個計算屬性
computed: {normalizedFullName: function () {
?    return this.fullName.split(' ').map(function (word) {
?      return word[0].toUpperCase() + word.slice(1)
?    }).join(' ')}
}### 標簽順序
單文件組件應該總是讓標簽順序保持為 <template> 、<script>、 <style>
舉例:
<template>...</template>
<script>...</script>
<style>...</style>## Vue Router 規范### 頁面傳參
頁面跳轉,例如 A 頁面跳轉到 B 頁面,需要將 A 頁面的數據傳遞到 B 頁面,推薦使用 路由參數進行傳參,即 {query:param}
舉例:
let id = ' 123';
this.$router.push({ name: 'userCenter', query: { id: id } });### path 和 name 命名規范
- **pathkebab-case命名規范(盡量與vue文件的目錄結構保持一致,因為目錄、文件名都是kebab-case,這樣很方便找到對應的文件)
- **path 必須以 / 開頭,即使是children里的path也要以 / 開頭。如下示例
- **經常有這樣的場景:某個頁面有問題,要立刻找到這個vue文件,如果不用以/開頭,path為parent和children組成的,可能經常需要在router文件里搜索多次才能找到,而如果以/開頭,則能立刻搜索到對應的組件
- **name 命名規范采用KebabCase命名規范且和component組件名保持一致!(因為要保持keep-alive特性,keep-alive按照component的name進行緩存,所以兩者必須高度保持一致)## Vue 項目規范### 目錄規范
src                               源碼目錄
|-- api                              所有api接口,按照`business、system、support`拆分子目錄
|-- assets                           靜態資源,images, icons, styles等
|-- components                       公用組件,按照`business、system、support`拆分子目錄
|-- config                           配置信息(項目配置)
|-- constants                        常量信息,項目所有Enum, 全局常量等,按照`business、system、support`拆分子目錄
|-- directives                       自定義指令
|-- i18n                             國際化
|-- lib                              外部引用的插件存放及修改文件
|-- plugins                          插件,全局使用
|-- router                           路由,統一管理
|-- store                            pinia狀態, 按照`business、system、support`拆分子目錄
|-- theme                            自定義樣式主題
|-- utils                            工具類
|-- views                            視圖目錄,按照`business、system、support`拆分子目錄
|   |-- business                     業務目錄
|   |-- support                      支撐目錄
|   |-- system                       系統目錄### api 目錄
- **api文件要以api為結尾,比如 employee-api.js、login-api.js,方便查找
- **api文件必須導出對象必須以Api為結尾,如:employeeApi、noticeApi
- **api中以一個對象將方法包裹
- **api中的注釋,必須和后端 swagger 文檔保持一致,同時保留后端作者### assets 目錄
- **assets 為靜態資源,里面存放 images, styles, icons 等靜態資源,靜態資源命名格式為 kebab-case
|assets
|-- icons
|-- images
|   |-- background-color.png
|   |-- upload-header.png
|-- styles### components 目錄
- **此目錄應按照組件進行目錄劃分,目錄命名為 kebab-case,一個組件必須一個單獨的目錄 ;
目的:
- **一個組件一個目錄是為了將來組件的擴展,因為這是整個項目公用的組件
- **組件入口必須為 index.vue,原因也是因為這是整個項目公用的組件### constants 目錄
此目錄存放項目所有常量和枚舉
具體要求:
- **常量文件要以 const 為結尾,比如login-const.js、file-const.js
- **變量要:大寫下劃線,比如 LOGIN_RESULT_ENUM、LOGIN_SUCCESS、LOGIN_FAIL
- **如果是 枚舉,變量必須以 ENUM為結尾,如:LOGIN_RESULT_ENUM、CODE_FRONT_COMPONENT_ENUM
例子: employee-const.js
export const EMPLOYEE_STATUS = {NORMAL: {value: 1,desc: '正常'},DISABLED: {value: 1,desc: '禁用'},DELETED: {value: 2,desc: '已刪除'}
};### router 與 store 目錄
- **這兩個目錄一定要將業務進行拆分,不能放到一個 js 文件里。
- **router 盡量按照 views 中的結構保持一致
- **store 按照業務進行拆分不同的 js 文件### views 目錄
- **目錄要求,按照模塊劃分,其中具體文件名要求如下:
- **如果是列表頁面,要以list為結尾,如role-list.vue、cache-list.vue
- **如果是 表單頁面,要以 form為結尾,如 role-form.vue、notice-add-form.vue
- **如果是 modal彈窗,要以 modal為結尾,如 表單彈窗 role-form-modal.vue,詳情 role-detail-modal.vue
- **如果是 drawer 抽屜頁面,要同上以 drawer為結尾

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92650.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92650.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92650.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于51單片機紅外遙控定時開關智能家電插座設計

1. 功能介紹 本設計是一款基于 STC8C52 單片機 的智能家電插座系統&#xff0c;集 紅外遙控控制、定時開關控制、自動與手動模式切換、掉電數據保存、液晶顯示、蜂鳴器提示 于一體&#xff0c;能夠方便用戶對家用電器進行精準的定時控制與遠程操作。系統廣泛適用于家用電器、辦…

下一代防火墻組網方案

知識回顧&#xff1a;1.傳統防火墻包括包過濾防火墻、應用網關防火墻、狀態檢測防火墻。2.包過濾防火墻工作在3、4層。3.包過濾防火墻特點&#xff1a;4.應用網關防火墻主要作用&#xff1a;①截取用戶初始化連接請求&#xff0c;對用戶進行認證&#xff1b;②通過ALG能讓多通道…

WEB開發-第二十七天(PHP篇)

DW PHPStorm PhpStudy Navicat Premium DW : HTML&JS&CSS開發 PHPStorm : 專業PHP開發IDE PhpStudy &#xff1a;Apache MYSQL環境 Navicat Premium: 全能數據庫管理工 變量覆蓋安全&#xff1a; $GLOBALS&#xff1a;這種全局變量用于在PHP腳本中的任意位置訪…

Lwip深度閱讀-網絡架構

LWIP網絡協議棧詳細介紹 本文的內容基本基于野火的LWIP手冊&#xff0c;和LWIP源碼撰寫。 網絡協議棧概述 從圖片可以看出&#xff0c;網絡協議棧采用分層架構&#xff0c;每一層都有特定的功能和協議。 TCP/IP協議分層模型數據封裝過程MAC數據包 我使用wireShark抓包的時候&am…

嵌入式系統學習Day16(C語言中的位運算)

位運算二進制位的運算嵌入式:通過位運算 控制 硬件運算: 運算規則 & 與 一假則假 | 或 一真則真 ~ 非 真假相對 ^ 異或 相同為假 不同為真 << 左移 表示二進制位的移動 >> 右移 eg:int a 0x55; int b 0x33;0101 0101 //0x55 &am…

Endnote下載,導入曼大 harvard_manchester格式

下載endnote 并激活中國農業科技文獻與信息服務平臺&#xff0c;點擊下載 下載harvard_manchester 格式 Harvard Manchester - Referencing guide at the University of Manchester - Subject guides at University of Manchester 雙擊打開第二步下載的安裝包&#xff08;使用…

【Docker進階實戰】從多容器編排到集群部署

Docker進階實戰&#xff1a;從多容器編排到集群部署 當你已經熟悉Docker的基本操作后&#xff0c;面對的下一個挑戰往往是&#xff1a;如何管理多個容器的協作&#xff1f;如何實現容器的集群化部署與擴展&#xff1f;如何保證服務的高可用&#xff1f; 一、Docker Compose&…

【Linux文件操作】文件操作系統調用

目錄 一、文件創建&#xff08;creat 系統調用&#xff09;? 1.1 函數原型 1.2 參數說明? 1.3 返回值? 1.4 使用示例 二、文件打開&#xff08;open 系統調用&#xff09;? 2.1 函數原型 2.2 參數說明? 2.3 返回值? 2.4 使用示例 三、文件讀寫&#xff08;read 和 write …

FreeRTOS源碼分析六:vTaskDelay vs xTaskDelayUntil任務延時

系列文章目錄 FreeRTOS源碼分析一&#xff1a;task創建&#xff08;RISCV架構&#xff09; FreeRTOS源碼分析二&#xff1a;task啟動&#xff08;RISCV架構&#xff09; FreeRTOS源碼分析三&#xff1a;列表數據結構 FreeRTOS源碼分析四&#xff1a;時鐘中斷處理響應流程 Free…

Linux學習-應用軟件編程(fread/fwrite,流定義相關接口)

freadsize_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 功能按塊從文件讀取數據&#xff0c;從文件中讀 nmemb 個、每個 size 字節的元素&#xff0c;存入 ptr 指向的內存。參數- ptr &#xff1a;存儲讀取數據的內存首地址&#xff08;需提前分配足夠…

IP分片(IP Fragmentation)

目錄 一、核心概念:MTU與分片的必要性 二、IP分片的關鍵字段(IPv4頭部) 三、分片與重組流程 1. 分片過程(發送端或中間路由器) 2. 重組過程(接收端) 四、IPv4與IPv6分片的差異 五、分片的潛在問題與風險 六、總結 一、傳輸效率降低,帶寬開銷增加 二、可靠性降低,數據丟…

高并發內存池 內存釋放回收(6)

文章目錄前言一、threadcache回收內存二、centralcache回收內存三、pagecache回收內存總結前言 Hello&#xff0c;我們繼續乘勝追擊 ??本篇難度較大&#xff0c;大家要好好學一下 一、threadcache回收內存 當某個線程申請的對象不用了&#xff0c;可以將其釋放給 thread cac…

2438. 二的冪數組中查詢范圍內的乘積

2438. 二的冪數組中查詢范圍內的乘積 初始理解題目 首先&#xff0c;我們需要清楚地理解題目在說什么。題目給出一個正整數 n&#xff0c;要求我們構造一個數組 powers&#xff0c;這個數組滿足以下條件&#xff1a; 元素性質?&#xff1a;數組中的每個元素都是 2 的冪。即…

【PyTorch學習筆記 - 01】 Tensors(張量)

最近項目需要優化一下目標檢測網絡&#xff0c;在這個過程中發現還是得增加對框架底層的掌握才可行。于是準備對pytorch的一些基本概念做一些再理解。參考PyTorch的wiki&#xff0c;對自己的學習過程做個記錄。 Tensors 是一種特殊的數據結構&#xff0c;與數組和矩陣非常相似…

【C/C++】(struct test*)0->b 講解

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 一、什么是結構體成員的偏移量&#xff1f; 二、為什么需要計算偏移量&#xff1f; 三、如何計算偏移量&#xff1f; 四、總結 一、什么是結構體成員的偏移量&#…

使用Pytest進行接口自動化測試(三)

&#xff08;一&#xff09;YAML 之前在項目中&#xff0c;我們也是用過YAML來做配置文件&#xff0c;他用于以人類可讀的形式存儲信息&#xff0c; 特點: 一種簡易的可讀語言&#xff0c;用于人和計算機交換數據 通常用來存儲配置信息 跟python類似&…

算法訓練營day46 647. 回文子串、516.最長回文子序列、動態規劃總結篇

今天是動態規劃的最后一篇內容了&#xff0c;本篇主要是針對回文字符串這種“與眾不同”的遞推規律來進行講解 647. 回文子串 統計并返回這個字符串中 回文子串 的數目 暴力解法 兩層for循環&#xff0c;遍歷區間起始位置和終止位置&#xff0c;然后還需要一層遍歷判斷這個區…

Qt界面優化

1.QSS在網頁前端開發領域中&#xff0c;CSS 是一個至關重要的部分&#xff0c;描述了一個網頁的 “樣式”&#xff0c;從而起到對網頁美化的作用。所謂樣式&#xff0c;包括不限于大小、位置、顏色、背景、間距、字體等等。網頁開發作為 GUI 的典型代表&#xff0c;也對于其他客…

week1+2+3

408 計組 1.基本組成2.數據的表示和運算定點數&#xff1a;把數字分為定點整數和定點小數分開存儲 浮點數&#xff1a;用科學計數法存儲 原碼 -全部取反-> 反碼 反碼 1->補碼 補碼 -符號位取反->移碼帶余除法&#xff1a;設x,m∈Z&#xff0c;m>0則存在唯一的整數q…

java8中javafx包缺少報錯

今天拉取一個jdk1.8的項目里面有一個代碼用到了javafx&#xff0c;這個我記得是jdk中的包&#xff0c;正常不應該報錯的。然后發現jdk中還真沒有&#xff0c;查了一下是因為版本問題。 Java 8 及之前&#xff1a;Oracle JDK 自帶 JavaFX&#xff0c;OpenJDK 通常不包含Java 9 …