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

Vue-cli

Vue-CLI 项目搭建

1 单文件组件

单文件组件 — Vue.js

2 Vue-CLI 项目搭建

2.1 环境搭建

- 安装node官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/- 安装cnpmnpm install -g cnpm --registry=https://registry.npm.taobao.org- 安装脚手架cnpm install -g @vue/cli- 清空缓存处理npm cache clean --force

2.2 项目的创建

创建项目
vue create 项目名
// 要提前进入目标目录(项目应该创建在哪个目录下)
// 选择自定义方式创建项目,选取Router, Vuex插件
//标准eslint,自动修复(ESlint+Standard config--》lint on save+Lint and fix on commit)
vue ui 使用图形界面创建项目
启动/停止项目
npm run serve / ctrl+c
// 要提前进入项目根目录
打包项目
npm run build
// 要在项目根目录下进行打包操作
package.json中
"scripts": {"serve": "vue-cli-service serve",  # 运行项目"build": "vue-cli-service build",  # 编译项目成html,css,js"lint": "vue-cli-service lint"     # 代码格式化
},

2.3 认识项目

项目目录
dist: 打包的项目目录(打包后会生成)
node_modules: 项目依赖(删掉,不上传git,使用npm install重新安装)
public: 共用资源--favicon.ico--index.html:项目入口页面,单页面
src: 项目目标,书写代码的地方-- assets:资源-- components:组件-- views:视图组件-- App.vue:根组件-- main.js: 入口js-- router.js: 路由文件-- store.js: 状态库文件
vue.config.js: 项目配置文件(没有可以自己新建)
package.json:项目配置依赖(等同于python项目的reqirement.txt)
配置文件:vue.config.js
//https://cli.vuejs.org/zh/config/ 配置参考
module.exports={devServer: {port: 8888}
}
// 修改端口,选做
main.js 整个项目入口文件
//es6 模块导入规范,等同于python导包
//commonJs的导入规范:var Vue=require('vue')
import Vue from 'vue'
import App from './App.vue'  //根组件
import router from './router'
import store from './store'Vue.config.productionTip = falsenew Vue({router,store,render: h => h(App)
}).$mount('#app')/*
new Vue({el:'#app' //原来是用el:'#app',现在是new出Vue对象,挂载到#app上---》.$mount('#app')render: h => h(App) //原来是在页面上div中写样式,现在组件化开发 把根组件(import App from './App.vue'),通过render渲染上,渲染组件的方式
}).$mount('#app')
*/
vue文件
<template><!-- 模板区域 -->
</template>
<script>// 逻辑代码区域// 该语法和script绑定出现//export default-->es6的默认导出(导出一个对象),模拟commonJS的导出方式制定的export default {}
</script>
<style scoped>/* 样式区域 *//* scoped表示这里的样式只适用于组件内部, scoped与style绑定出现 */
</style>
定义组件
#1 新建xx.vue
components-->HelloWorld.vue
#2 引入使用
<script># es6的引入import from import HelloWorld from '@/components/HelloWorld.vue'import Vue from 'vue'Vue.component('HelloWorld',HelloWorld) # 全局组件export default {components: { # 局部组件HelloWorld:HelloWorld},}
</script>

ESLint

ESLint 是一个开源的 JavaScript 代码检查工具,由 Nicholas C. Zakas 于2013年6月创建。代码检查是一种静态的分析,常用于寻找有问题的模式或者代码,并且不依赖于具体的编码风格。对大多数编程语言来说都会有代码检查,一般来说编译程序会内置检查工具。JavaScript 是一个动态的弱类型语言,在开发中比较容易出错。因为没有编译程序,为了寻找 JavaScript 代码错误通常需要在执行过程中不断调试。像 ESLint 这样的可以让程序员在编码的过程中发现问题而不是在执行的过程中。ESLint 的初衷是为了让程序员可以创建自己的检测规则。ESLint 的所有规则都被设计成可插入的。ESLint 的默认规则与其他的插件并没有什么区别,规则本身和测试可以依赖于同样的模式。为了便于人们使用,ESLint 内置了一些规则,当然,你可以在使用过程中自定义规则。ESLint 使用 Node.js 编写,这样既可以有一个快速的运行环境的同时也便于安装
js语法规范性检查,类似于PEP8规范
官网
https://eslint.bootcss.com/docs/about/

1、使用vue-cli:

在vue-cli在init初始化时会询问是否需要添加ESLint,确认之后在创建的项目中就会出现.eslintignore和.eslintrc.js两个文件。

.eslintignore类似Git的.gitignore用来忽略一些文件不使用ESLint检查。
.eslintrc.js是ESLint配置文件,用来设置插件、自定义规则、解析器等配置。

执行:npm run lint 会自动修复代码

2、配置ESLint:

Vue的项目配置eslint还是很简单的。它属于依赖插件中的一种,可以像安装其他插件一样在命令行用npm install eslint -g安装,也可以修改package.json文件去更新项目的依赖包,重新跑一遍npm install就可以了。 eslint常用的依赖有很多,我贴出我用的一些。在package.jsonde 的dependencies或者devDependencies中添加下列属性即可:

"babel-eslint": "^7.1.1",  
"eslint-config-standard": "^6.2.1",  
"eslint-friendly-formatter": "^2.0.7",  
"eslint-loader": "^1.6.1",  
"eslint-plugin-html": "^2.0.0",  
"eslint-plugin-promise": "^3.4.0",  
"eslint-plugin-standard": "^2.0.1",

但是有可能项目没有生成 eslintrc.js,码友可以去网上搜eslintrc.js然后放在项目根目录下即可。

3 配置示例

在package.json中通过eslintConfig配置,示例:

"eslintConfig": {"root": true,"env": {"node": true},"extends": ["plugin:vue/essential","@vue/standard"],"rules": {"eol-last": [0],"semi": [2, "always"], // 强制语句分号结尾"indent": [2, 4], // 强制缩进4 spaces"no-new": [0], // 不允许new一个实例后不赋值或不比较"no-debugger": [0], // 不允许出现debugger语句"camelcase": [0, {"properties": "never"}] // 关闭驼峰命名规则},"parserOptions": {"parser": "babel-eslint"}},"eslintIgnore": ["dist/*","node_modules/*","build/*","*.md"],

相关文章:

  • UV贴图和展开初学者指南
  • x-cmd pkg | usql - SQL 数据库的通用交互界面
  • Zookeeper+Kafka概述
  • 构建中国人自己的私人GPT
  • RT-Thread入门笔记2-动态内存堆的使用
  • Docker安装Nacos2.2.3并鉴权、Prometheus监听Nacos、Grafana监控Nacos【亲测可用】
  • Redis 7.0性能大揭秘:如何优化缓存命中率?
  • react+AntDesign 之 pc端项目案例
  • SpikingJelly笔记之泊松编码
  • Linux备忘手册
  • ML:2-4理解python如何实现forward prop
  • TypeScript使用技巧内置工具类型详解
  • 抛弃安卓,追赶iOS,鸿蒙能否成为中国第二大系统?
  • vue.js环境在window和linux安装
  • springcloud gateway动态路由
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • [笔记] php常见简单功能及函数
  • 【面试系列】之二:关于js原型
  • Java基本数据类型之Number
  • Vue官网教程学习过程中值得记录的一些事情
  • 初识 webpack
  • 分享几个不错的工具
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 力扣(LeetCode)965
  • 前端性能优化——回流与重绘
  • 让你的分享飞起来——极光推出社会化分享组件
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 微服务框架lagom
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 栈实现走出迷宫(C++)
  • Linux权限管理(week1_day5)--技术流ken
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • #vue3 实现前端下载excel文件模板功能
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (附源码)springboot 智能停车场系统 毕业设计065415
  • (过滤器)Filter和(监听器)listener
  • (离散数学)逻辑连接词
  • (区间dp) (经典例题) 石子合并
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)ABI是什么
  • (转)JAVA中的堆栈
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转)树状数组
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .gitignore文件—git忽略文件
  • .NET Core中的去虚
  • .Net Memory Profiler的使用举例
  • .Net的DataSet直接与SQL2005交互
  • .net访问oracle数据库性能问题
  • .Net面试题4
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)