css中划线-基于vite创建vue3全家桶项目(vite+vue3+tsx

2023-08-21 0 3,822 百度已收录

Vite最近很流行。 是Vue作者特别专家发布的后端重构工具。 底层基于Rollup,无论是启动速度还是热加载速度都非常快。 Vite将与即将发布的vue3版本一起发布。 一开始是和vue绑定的,后来的v2版本就会相对独立了。 vite除了支持vue之外,还支持React、Preact、Vanilla等后端库。

由于vite出现时间不长,基于vite创建的项目并不像vue-cli那么完整。 如果要使用vue全家桶、ESLint等,需要开发者自动添加和配置。 步骤有点多,也有点复杂。 貌似创建项目的时候可以选择Customizewithcreate-vue,但是我还是因为网络问题没有成功。 于是我封装了一个cli来快速创建一个基于vite+vue3的项目。 如果你觉得一步步自动添加配置麻烦,可以使用我封装发布到npmjs的脚手架yyg-cli。 使用 yyg-cli 目前只有可以快速创建 Vite+Vue3 全家桶的项目,后续会逐步更新对其他库的支持。 可以直接到文末查看yyg-cli的使用。

本文将一步步使用vite创建一个vue3项目,集成vue全家桶,基于vue-cli实现项目的疗效。 整合的内容包括:

vue3+vite2

TypeScript、多伦多证券交易所

ESLint 标准

萨斯

Vue路由器

Pinia(状态管理)

ElementPlus(带图标全局注册)

1 创建项目 1.1 创建项目

我习惯使用yarn而不是npm作为包管理工具,个别依赖项用npm安装时会出现各种问题。 使用纱线创建项目:

yarn create vite

1)Projectname输入项目名称:vue3-vite-archetype

2)Selectaframework选择框架:Vue

3)Selectvariant选择变体(语言):TypeScript

1.2 启动项目

项目创建完成后,按照命令行提示操作:

1)进入项目:cdvue3-vite-archetype

2)安装依赖:yarn

3)启动项目:yarndev

如果控制台出现如下信息,则说明项目启动成功。 在浏览器中访问台北地址:

2 项目配置 2.1 添加编辑器配置文件

在根目录添加编辑器配置文件:.editorconfig

[*.{js,jsx,ts,tsx,vue}]
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true

2.2 配置别名

vue开发过程中,导入文件时,习惯使用@代替src,而vite默认是无法识别的,比如App.vue中的第4行(引入HelloWorld组件),如果改成:

import HelloWorld from '@/components/HelloWorld.vue'

会出现如下错误:

路径别名需要在vite.config.js中配置。

1)安装依赖:

 yarn add @types/node -D

2)导出路径

import path from 'path'

3)为导入的对象添加resolve:

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': path.resolve(__dirname, './src')
    }
  }
})

同样,可以在alias中继续为常用目录定义其他别名。

不仅是前三步,还需要更改项目根目录下的tsconfig.json文件,在compilerOptions节点中添加两个属性来配置baseUrl和paths,如下:

{
  "compilerOptions": {
...
    "baseUrl": ".",
    "paths": {
      "@/*": ["src/*"]
    }
  },
...
}

这个时候就不会报错了,可以在项目中用@来替换src。

2.3 处理sass/scss

例如,如果项目中使用了scss,则在App.vue中指定样式为lang="scss":

此时会出现错误,提示没有找到sass依赖:

添加sass/scss支持,只需要安装sass开发依赖即可:

yarn add sass -D

2.4 处理tsx

1)添加开发依赖

yarn add @vitejs/plugin-vue-jsx -D

2)在vite.config.ts中配置插件

import vueJsx from '@vitejs/plugin-vue-jsx'
...
export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
...
  ],
  ...
})

3 添加ESLint

ESLint主要用于代码规范和统一代码风格。

3.1 安装依赖

首先安装 eslint 作为开发依赖项:

yarn add eslint -D

3.2 初始化ESLint配置

然后执行初始化eslint的命令:

npx eslint --init

执行上述命令后,Control台北将有以下步骤:

1)需要安装@eslint/create-config,并询问是否继续:其实需要继续,回车即可;

2)ESLint怎么办:我选择最后的Tochecksyntax、findproblems、enforcecodestyle(检测句型、发现问题、强制代码风格)

3)使用哪种模块化方式:肯定选择JavaScriptmodules(导入/导出)(我参与的vue项目几乎都是ESModule)

4)项目使用哪些框架:Vue.js*

5)项目是否使用TypeScript:是

6)项目运行在哪些环境:浏览器

7)如何定义项目的代码风格:Useapopularstyleguide 使用流行风格

8) 选择流行款式之一:标准

9)ESLint配置文件格式:JavaScript

10)按照前面的选择,提示需要安装很多依赖,是否要安装? 是的

11)选择要安装的包管理工具:yarn

拿出来耐心等待安装依赖。

依赖安装完成后,还会在项目根目录下手动生成.eslintrc.cjs文件(可以将后缀重命名为.js)。 因为eslint默认集成的vue规范比较旧,我们的项目是vue3,而vue3的句型规则发生了变化(例如template标签下可以允许多个节点等),这个变化会让eslint校准不适合vue3,所以需要改变eslint的部分配置,使其对vue3友好。 只需将 extends 中的 'plugin:vue/essential' 更改为 vue3 的 'plugin:vue/vue3-essential' 即可。

3.3 更改配置

更改后.eslintrc.cjs的配置如下:

module.exports = {
  root: true,
  env: {
    browser: true,
    es2021: true,
  },
  extends: [
    'plugin:vue/vue3-essential',
    'standard'
  ],
  parserOptions: {
    ecmaVersion: 'latest',
    parser: '@typescript-eslint/parser',
    sourceType: 'module'
  },
  plugins: [
    'vue',
    '@typescript-eslint'
  ],
  rules: {}
}

3.4 插件配置

上面的步骤已经完成了eslint的引入和配置,接下来就是配置vite的eslint插件,这个插件可以让vite知道项目的eslint配置。

1) 安装插件作为开发依赖项:

yarn add vite-plugin-eslint -D

2)在vite.config.js中添加插件:

//...
import eslint from 'vite-plugin-eslint'
export default defineConfig({
  plugins: [
    vue(),
    eslint()
  ],
//...
})

3.5 配置Webstorm

WebStorm 很好地支持 ESLint。 您可以在 WebStorm 中指定 ESLint 配置并手动更正它。 按照右图在WebStorm的Preferences中进行设置:

4 添加vue-router4.1安装依赖

安装 vue-router 依赖项:

yarn add vue-router@next

4.2 创建测试页

在src中创建目录views,并在src/views/中创建about.vue和home.vue两个文件。 两个vue文件的代码如下:

主页.vue:


  


import { defineComponent } from 'vue'
import HelloWorld from '@/components/HelloWorld.vue'
export default defineComponent({
  name: 'home',
  components: {
    HelloWorld
  }
})


.logo {
  height: 6em;
  padding: 1.5em;
  will-change: filter;
}
.logo:hover {
  filter: drop-shadow(0 0 2em #646cffaa);
}
.logo.vue:hover {
  filter: drop-shadow(0 0 2em #42b883aa);
}

关于.vue:


  

This is an about page

4.3 配置路由

在src目录下创建目录router,并在src/router下创建index.ts文件,用于定义路由和创建路由对象。

src/路由器/index.ts:

import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
import Home from '../views/home.vue'
const routes: Array = [
  {
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/about',
    name: 'About',
    component: () => import('@/views/about.vue')
  }
]
const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})
export default router

4.4 引入配置配置

更改 src/main.ts 以导入路由。 修改后内容如下:

import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import router from './router'
const app = createApp(App)
app.use(router)
app.mount('#app')

4.5 添加插头

更改 src/App.vue,添加链接和路由插件:


  
  

样式也可以调整,修改src/style.css:

body {
  margin: 0;
  display: flex;
  min-width: 320px;
  min-height: 100vh;
}
#app {
  max-width: 1280px;
  margin: 0 auto;
  padding: 2rem;
  text-align: center;
}
a {
  font-weight: 500;
  text-decoration: inherit;
}
a.router-link-exact-active {
  color: #42b983;
}
svg {
  width: 1em;
  height: 1em;
}

5 状态管理 Pinia

vue2中通常使用Vuex进行状态管理,vue3中推荐使用Pinia。 与vuex相比,Pinia的句型更加简洁,放弃了变异操作,更好地支持TypeScript,满足Vue3的Composition API。 它是最新一代的轻量级状态管理插件。 据尤大师介绍,vuex 将不再接受新功能,推荐使用 Pinia。

5.1 安装依赖

使用yarn安装pinia依赖项:

yarn add pinia

5.2 创建根存储

在 src/main.ts 中创建根存储 pinia 并将其传递给应用程序:

...
import { createPinia } from 'pinia'
...
app.use(createPinia())
...

5.3 定义商店

在src目录下创建storecss中划线,并在src/store下创建demo.ts文件。 在这个文件中,我们以CompositionAPI的形式实现store。

src/store/demo.ts:

import { defineStore } from 'pinia'
import { ref } from 'vue'
const useDemoStore = defineStore('demo', () => {
  const counter = ref(0)
  const increment = () => {
    counter.value++
  }
  return {
    counter,
    increment
  }
})
export default useDemoStore

5.4 使用商店

其中创建了一个store,然后在src/views/about.vue中使用该store:


  

This is an about page

counter: {{counter}}

import useDemoStore from '@/store/demo' import { storeToRefs } from 'pinia' const demoStore = useDemoStore() const { counter } = storeToRefs(demoStore) const add = () => { demoStore.increment() }

这样就实现了pinia状态管理的demo。 单击“关于”页面上的按钮将更改状态计数器的值。

6 使用Element Plus

ElementUI是一个非常常用的中后台管理界面的vueUI库,Vue3对应的版本叫做ElementPlus。

6.1 添加ElementPlus

1)安装依赖:

yarn add element-plus

2)在src/main.ts中引入:

...
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
...
app.use(ElementPlus)
...

3)替换about.vue中的button按键测试:

Ad Count

6.2 全局注册图标

在element-ui中,安装element-ui后可以直接使用图标,但element-plus需要单独安装依赖,并在使用图标时引入相应的图标组件。 我们可以进行简单的封装,使其与element-ui中的用法保持一致。

1)安装依赖:

yarn add @element-plus/icons-vue

2)在src下创建utils/str-utils.ts,定义驼峰命名法改为破折号命名的函数:

export const camelCaseToLine = (v: string): string => {
  return v.replace(/([A-Z])/g, '-$1').toLowerCase()
}

3)在src/main.ts中全局注册所有图标,使用方法:

...
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import { camelCaseToLine } from '@/utils/str-utils'
...
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
  app.component(`el-icon${camelCaseToLine(key)}`, component)
}
...

4)about.vue页面测试使用


  

使用图标替换之前的文字AddCount,效果如下:

至此css中划线,vite+vue3+vuerouter+pinia+elementplus的基本整合已经完成。 步骤很多且冗长。 您可以使用 yyg-cli 省略上述步骤。

7yyg-cli

yyg-cli实现了前面的步骤,只需要一条命令就可以创建一个vue3全家桶项目。

首先使用 npm 全局安装 yyg-cli:

npm install -g yyg-cli

全局安装成功后,使用yygcreate命令创建项目,例如创建名为demo的项目:

yyg create demo

输入此命令后,根据自己项目的需要,输入项目描述、版本号、作者、开发运行终端口号(都是可选的,直接回车即可)。

然后询问是否要立即依赖依赖,直接回车即可。 最后选择包管理工具,开始手动安装依赖。

依赖安装完成,进入项目根目录,yarndev就可以启动项目了。

yyg-cli 为您节省自动集成和配置的时间。 未来将推出对ant-d、hero-admin-ui等的支持,实现开箱即用,快速创建企业级中后端项目的基础框架。

为什么我们要培养自己的编码标准?

当我们编写代码时,良好的编码标准可以给我们带来很多意想不到的效果。 至少有以下好处:

1.提高我们的编码效率。 统一的代码方便我们复制粘贴!

2.提高代码的可读性。

3.展现我们的专业精神。 当别人听到我们的代码时,发现整个代码的书写过程工整、统一,颜值瞬间提升!

4、方便团队协作。 大家都使用同一个规范,杜绝了各种书写形式,统一协调!

编码规范由两块组成,代码规范和注释规范

其实我们写的php脚本其实是由两部分组成的,分别是代码的编写和代码的注释! 不同的框架,甚至不同的公司,在这方面都会有不同的看法。 这里只是总结一下自己的写作规范!希望对其他同学有所启发

1. 代码编写规范

文件夹命名:

文件夹使用相同的小写字母。例如存放控制器的文件夹可以直接命名为controller

文件命名:

如果是class文件,那么文件的命名要与同一个类的名称一致,统一使用大驼峰。 如Session.class.php,对应的类名为Session,

如果是普通的工具脚本,则统一使用小驼峰,如common.php

类名的命名:

使用相同的大驼峰式大小写作为类名,Cookie 类

方法名称命名:

统一使用小驼峰式,技术的功能一般以动词+位置的形式描述,如sendMessage,发送电子邮件。

在面向对象中,遵循相同的规则,但存在一些差异:

public getUserName()
protected _getTotalAmount()
private _setBlanceAmount()

变量命名约定:

关于变量,我们需要多说几点:

1、无论是面向对象还是非面向对象句型,变量统一使用小驼峰式,如:$workYears。

但面向对象就不一样了,在添加public、protected、private、protected或private属性时,前面加_作为区别

css中划线-基于vite创建vue3全家桶项目(vite+vue3+tsx

public $startPosition = 1;
protected $_salaryAmount =1000;
private $_sex = 'formale';

2、如果是常量,统一使用小写,中间用逗号分隔。

define('CURRENT_SCRIPT', 'index.php');
const TRANSACTION_TYPE = 'income';

3.对于全局变量,使用大驼峰,在前缀中添加_,并将所有短语的第一个字母小写。 因为了解变量的作用域非常重要,所以局部变量和全局变量应该明确分开!

$_System_Config;

$_Root_Path;

缩进

关于编码的缩进符号,我们统一使用制表符进行缩进! 也许有人会问为什么不用空格来缩进呢?

原因很简单。 大多数编辑器都支持一个tab等于多少个空格,使用空格时无需调整!

计算符号

所有二元运算符前后都应有空格

$name = 'zero';
$age > 18 ? 'adult' : 'children';

通用流程句子规划

我们同意所有过程语句的大括号占据一行。 原因:如果遇到比较复杂的业务逻辑,就会出现很多花括号的嵌套,所以我们会混淆各个对应的花括号!

1. 分支句

if($age >= 18 && $age  30 && $age  60)
{
 echo 'I am very old';
}
switch($status)
{
 case 'forbiden':
 echo 'login forbidden';
 break;
 case 'normal':
 echo 'login in';
 break;
 default:
 echo 'status is wrong' :
 break;
}

2.循环语句

while($condition)
{
 statesments......;
}
foreach($arrayList as $arrayKey => $arrayItem)
{
 states......;
}
do
{
 statements......; 
}
while($condition)
for($start; condition; changenumber)
{
 statements......;
}

2. 笔记书写规范

很多人说好的代码不需要注释。 其实我个人认为这是一个很无厘头的说法(也许他是对的,除非整个团队就他一个人,而且他做所有事情都不看别人的代码)。

我个人的观点是:多写笔记,无论是对团队中的其他人还是对自己都非常友好!

根据个人经验,评论至少有以下功能:

1、有利于增强代码的可读性。 毕竟,阅读你的评论比阅读你的代码容易得多!

2.有利于规划自己的代码布局! 之所以这么说,是因为和代码注释的类型有关。 “有利于代码的布局”,这种看似有点悬而未决的东西,根本无法解释,需要真实的例子来支撑!

css中划线-基于vite创建vue3全家桶项目(vite+vue3+tsx

3、由于我们的注释规范是基于phpdocumentor的要求,所以通过这个工具,还可以生成代码的整体描述,相当于一本使用说明书!

代码注释的类型

1.屏蔽评论

块注释,个人觉得主要用在三个地方。php脚本的描述,一个大的功能模块的描述,当注释不能写在一行内时,也应该放在块注释中

2. 行注释

行评论,个人觉得他用的是块评论! 一般用来描述一个大的功能模块的具体细节!

实际案例

关于phpdocumentor句型的具体使用细节,这里就不多说了,官网说得更清楚了

从前面的例子我们可以看一下代码的大致布局,但是还需要在实践中逐步摸索

下面附上一些php编程规范供大家参考。

1. 文件标记:

1、所有php文件的代码标签均使用完整的php标签css中划线,不建议使用短标签(短标签容易与xml混淆,php从5.4开始默认不支持短标签)。

2. 对于只有php的代码文件,建议省略末尾的'?>'。 这是为了避免多余的空格或其他字符影响代码。

2. 文件和目录命名

1.程序文件名和目录名以有意义的中文命名,不要使用拼音和无意义的字母,只允许字母、数字、下划线和破折号字符,并且必须以'.php'结尾(模板文件除外)css中划线,使用多个单词之间的驼峰式大小写。

示例: //统一使用类:DemoTest.class.php

//接口统一采用:DemoTest.interface.php

//其他根据各自方法:demoTest.{style}.php

3、文件目录结构

标准化的目录结构有利于团队协作开发和后期维护。

——app //独立应用程序

——class //单个类文件、共享类文件

——conf/inc //配置文件或目录

css中划线-基于vite创建vue3全家桶项目(vite+vue3+tsx

——data //数据文件或目录

——doc //程序相关文档

--htdocs //文档根目录

——images //所有图像文件存储路径

——css //css文件

——js //js文件

——lib //共享解释器

——template //模板文件

——tmp //临时文件目录

——cache //缓存文件

——session //SESSION文件

——template_c //编译后的模板文件

- 其他

——upload //上传文件

——manage //后台管理文件目录

4. 命名约定

1.变量命名:PHP中的变量是区分大小写的。 有效的变量名称以数字、字母或逗号开头,后跟任意数量的字母、数字和下划线。

a) 程序整体采用驼峰命名法,大写字母开头,且名称必须有意义。 (函数显示名称())

b) PHP全局变量通配符两边有'_',中间采用驼峰式命名。 ($_GLOBAL['_beginTime_'])

c) 普通变量整体使用驼峰式大小写,建议在变量前添加表示类型的前缀。 不确定类型以小写字符开头。

d) 函数名应尽可能有意义并尽可能缩写。

2. 类和套接字命名:

a) 以大写字母开头。

b) 由多个短语组成的变量名,单词之间没有空格,每个短语的首字母小写。

c) 类名与类文件名一致。

d) 程序中所有类名都是唯一的。

e) 抽象类应该以 Abstract 开头。

接口命名规则:

i) 使用与类相同的命名规则,但在其名称前添加“i”字符,表示套接字。

ii) 尽量使其与实现它的类名保持一致。

3、数据库命名:在数据库相关的命名中,绝对不会出现小写字母。

a) 所有表名均使用小写字母。

b) 表名使用相同的前缀且前缀不能为空。

c) 对于由多个短语组成的表名,请使用“_”间隔。

d) 表数组命名规则。

i) 全部使用小写字母。

ii) 多个短语不以逗号分隔。

iii) 用表名的第一个字母作为公共数组的前缀。

iv) 避免使用关键字和保留字。

5.注解规范

1、程序注释:写在代码的上面而不是旁边,单行代码按照习惯写在代码的最后; 大注释采用/**/的形式,通常位于文件或函数的底部,“//”用于代码内部; 评论不宜过多; 代码注释应该描述为什么而不是做什么,并为代码读者提供最重要的信息。

2、文件注释:文件注释通常放在文件的底部,包括程序的描述、作者、项目名称、文件名、时间日期、版本信息、重要使用说明(类调用、注意事项等) .)。 版本修改需要更改版本号并添加mofify注释。

3、类和socket注解:按照通常的做法,一个文件只包含一个类。

4、方法和函数注释:方法和函数的注释写在上面,通常需要表明信息的主要可见性、参数类型和返回值类型。

/**

* 连接数据库

* @param string $dbhost数据库服务器地址

* @param string $dbuser 数据库用户名

css中划线-基于vite创建vue3全家桶项目(vite+vue3+tsx

* @param string $dbpwd 数据库密码

*/

6. 代码风格

1、缩进和空格:使用4个空格进行缩进,不要使用Tab键; 可变参数时,等号两边留空格。 ($url = '$_GET['url']';)

2、语句换行:尽量保证程序语句一行一句; 一行代码尽量不要太长,80个字符以内; 如果某行代码过长,请使用类似于“.=”的方法来断开连接; 执行数据库的sql 操作语句时,尽量不要在函数中编写sql语句,而是先用变量定义sql语句,然后在执行操作的函数中调用定义的变量。

3.更好的习惯:在代码中使用下面列出的方法,让代码变得更加高贵。

1):使用更多PHP中已经存在的常量,而不是自己定义它们。

示例: //换行

回显 $msg."rn";

回显 $msg,PHP_EOL;

PHP_EOL是php中预定义的常量,表示一行的结束。 根据所使用的系统,使用 PHP_EOL 的代码可移植性更高

2): 在echo中使用冒号作为连接符比使用'.'更美观作为连接器代码。

3):单冒号的效率比双引号低,但是两者的使用有区别,学会使用printf函数。

示例://回显

echo '每个'.$scholl。' 有大约“.floor($avg)”。 中学生;

//打印

$format = '每%s个小于$d个中学生';

printf($format, $school, $avg);

4) : 详细注释

5):不要滥用句型糖,语法糖是语言中的潜规则,即不具有普遍代表性的句型。

举两个反例,如何写出好的代码

最经典的算法,献给笔试路上的你

如果你现在正走在PHP笔试的路上,先看看笔试的基础题

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 css css中划线-基于vite创建vue3全家桶项目(vite+vue3+tsx https://www.wkzy.net/game/138909.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务