首页 > 其他分享 >【七】Vue之Vue-cli

【七】Vue之Vue-cli

时间:2023-08-06 22:38:05浏览次数:38  
标签:Vue cli 项目 js vue ESLint 组件

【一】Vue-CLI 项目搭建

【二】Vue-CLI 项目搭建参考步骤

  • Vue-CLI(Vue Command Line Interface)是Vue.js官方提供的一个基于命令行的快速搭建Vue项目的工具。
  • 它为我们创建一个Vue项目提供了简单易用的脚手架。

【1】安装Node.js:

  • 首先需要安装Node.js,因为Vue-CLI是基于Node.js运行的。

  • 你可以去Node.js官网下载和安装适合你操作系统的Node.js版本。

【2】安装Vue-CLI:

  • 一旦安装了Node.js,就可以使用npm(Node.js包管理工具)来全局安装Vue-CLI。
  • 在命令行中运行以下命令进行安装:
npm install -g @vue/cli

【3】创建一个Vue项目:

  • 安装完成后,可以使用Vue-CLI创建一个新的Vue项目。在命令行中运行以下命令:
vue create project-name
  • 其中,project-name是你想要的项目名称。

【4】配置项目选项:

  • Vue-CLI会提示你选择一些配置选项,如预设类型、特性插件等。根据你的需求进行选择或默认即可。

【5】安装依赖并运行项目:

  • 配置完成后,Vue-CLI会自动进行项目的安装依赖过程。安装完成后,在项目目录下运行以下命令启动项目:
cd project-name
npm run serve
  • 这样就完成了一个基本的Vue-CLI项目的搭建,现在你可以在浏览器中访问http://localhost:8080来查看项目。

【三】单文件组件:

【1】详解

  • 在Vue.js中,单文件组件是一种以.vue结尾的文件格式,用于组织Vue组件的代码、模板和样式。
  • 它将一个完整的Vue组件包装在一个文件中,提供了更好的可维护性和组件化开发体验。

【2】组成部分

单文件组件通常包含三个部分:templatescriptstyle

  • template:用于定义组件的HTML结构,可以使用Vue的模板语法编写。

  • script:用于定义组件的JavaScript代码,包括组件的逻辑和行为。可以使用ES6模块导出一个Vue组件。

  • style:用于定义组件的样式,支持CSS、SCSS等预处理器。

【3】单文件组件示例:

<template>
  <div>
    <h1>{{ message }}</h1>
    <button @click="increment">Increment</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello Vue!',
      count: 0
    };
  },
  methods: {
    increment() {
      this.count++;
    }
  }
};
</script>

<style>
h1 {
  color: red;
}
</style>
  • 要在Vue项目中使用单文件组件,可以直接通过import导入组件,并在其他Vue组件中通过标签名来使用它。

【四】相关的开发者文档链接:

【五】Vue-CLI 项目搭建

【1】环境搭建

- 安装node

官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/

- 安装cnpm

npm install -g cnpm --registry=https://registry.npm.taobao.org

- 安装脚手架

cnpm install -g @vue/cli


- 清空缓存处理

npm cache clean --force

【2】项目的创建

(1)创建项目

vue create 项目名
// 要提前进入目标目录(项目应该创建在哪个目录下)
// 选择自定义方式创建项目,选取Router, Vuex插件
//标准eslint,自动修复(ESlint+Standard config--》lint on save+Lint and fix on commit)
vue ui 使用图形界面创建项目

(2)启动/停止项目

npm run serve / ctrl+c
// 要提前进入项目根目录

(3)打包项目

npm run build
// 要在项目根目录下进行打包操作

(4)package.json中

"scripts": {
    "serve": "vue-cli-service serve",  # 运行项目
    "build": "vue-cli-service build",  # 编译项目成html,css,js
    "lint": "vue-cli-service lint"     # 代码格式化
},

【3】认识项目

(1)项目目录

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)

(2)配置文件:vue.config.js

//https://cli.vuejs.org/zh/config/ 配置参考
module.exports={
	devServer: {
		port: 8888
	}
}
// 修改端口,选做

(3)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 = false

new 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')
*/

(4)vue文件

<template>
    <!-- 模板区域 -->
</template>
<script>
    // 逻辑代码区域
    // 该语法和script绑定出现
  	//export default-->es6的默认导出(导出一个对象),模拟commonJS的导出方式制定的
    export default {
        
    }
</script>
<style scoped>
    /* 样式区域 */
    /* scoped表示这里的样式只适用于组件内部, scoped与style绑定出现 */
</style>

(5)定义组件

#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】vue项目中关闭ESLint

  • 时候会被ESLint的报错阻止程序的运行,这时候我们就想关闭这个ESLint了。在vue项目中关闭ESLint方法:
  1. 在您的Vue项目的根目录中,找到一个名为.eslintrc.js.eslintrc的文件。
  2. 打开该文件,并查找类似于以下代码的配置:
module.exports = {
  // ...
  rules: {
    // ...
  }
}
  1. 要关闭ESLint,请删除或注释掉整个rules部分的代码。如果没有其他配置,也可以将整个.eslintrc.js文件删除。
    示例:
module.exports = {
  // ...
  // rules: {
  //   // ...
  // }
}
  1. 保存文件并重新启动您的Vue开发服务器。

这样,ESLint将不再执行任何代码规范检查,并且不会抛出任何与代码规范相关的错误或警告。

  • 请注意,关闭ESLint可能会导致代码质量下降,因为您将无法受益于代码规范的自动化检查和修复功能。
  • 所以,在关闭ESLint之前,请确保了解潜在的风险并做出明智的决策。

【4】配置示例

  • 在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"
 ],

标签:Vue,cli,项目,js,vue,ESLint,组件
From: https://www.cnblogs.com/dream-ze/p/17610219.html

相关文章

  • 【十】Vue之高级
    【一】ref属性【1】详解被用来给元素或子组件注册引用信息(id的替代者)应用在html标签上获取的是真实DOM元素,应用在组件标签上是组件实例对象(vc)在Vue中,$refs是一个特殊的属性,用于给元素或子组件注册引用信息。它允许我们在模板或组件中通过引用名称来访问对应的DOM元素或......
  • 【十一】Vue之Vue3
    【一】Vue3的变化【1】性能的提升打包大小减少41%初次渲染快55%,更新渲染快133%内存减少54%【2】源码的升级使用Proxy代替defineProperty实现响应式重写虚拟DOM的实现和Tree-Shaking【3】拥抱TypeScriptVue3可以更好的支持TypeScript【4】新的特性Composition......
  • 【3.0】Vue之语法
    【一】插值语法<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title><!--Vue文件--><scriptsrc="https://cdn.bootcdn.net/ajax/libs/vue/2.7.9/vu......
  • 【2.0】Vue之引入
    【一】Vue介绍Vue(读音/vjuː/,类似于view)是一个渐进式JavaScript框架,用于构建用户界面。它与其他大型框架的不同之处在于,Vue的设计理念是可以逐层应用的。Vue的核心库只关注视图层,这使得它不仅易于上手,还方便与第三方库或已有项目进行整合。Vue采用了M-V-VM(Model......
  • 【4.0】Vue之指令系统
    【一】指令系统之文本指令(v-text/v-html)写在标签上,v-开头的标签,称之为指令,每个指令都有特殊用途v-指令名='写原来插值能写的东西'v-指令名='name'#变量v-textv-text指令用于将变量的值渲染到标签的内部。它会将变量的值作为纯文本内容输出到标签之间,而不会将......
  • 【7.0】Vue之组件
    【一】组件介绍【1】什么是组件组件就是:扩展HTML元素,封装可重用的代码,目的是复用例如:有一个轮播图,可以在很多页面中使用,一个轮播有js,css,html组件把js,css,html放到一起,有逻辑,有样式,有html组件是在Web开发中常用的一种技术方式,它可以将页面上的不同部分进行封装,形成......
  • 【6.0】Vue之生命周期函数
    【一】Vue的生命周期【1】详解Vue.js生命周期是指在Vue实例从创建到销毁的过程中,会经历一系列的钩子函数,这些钩子函数可以让我们在不同的阶段插入自定义的代码。Vue的生命周期分为三个主要阶段:创建阶段更新阶段销毁阶段。(1)创建阶段beforeCreate:在实例初始化之后,......
  • 【5.0】Vue之计算属性和监听属性
    【一】计算属性[1]计算属性是通过依赖变量进行缓存的,这意味着计算属性会保存最近一次计算的结果,并且只有在相关的依赖变量发生改变时才会重新计算。[2]计算属性只有在其相关依赖变量发生改变时才会重新求值,这也是它与普通函数的一个主要区别。与函数不同的是,计算属性只在......
  • vue表格分页以及增删改查的实际应用
    效果:1:表格以及分页2:增加一条数据3:删除一条数据4:修改一条数据5:查询一条数据<template><divclass="tab-container"><divclass="filter-container"style="margin-bottom:20px"><el-inputmaxlength="40&quo......
  • vue--day55--vue 的$nextTick以及MyItem编辑框
    1.语法this.$nextTick(回调函数)2.作用在下一次DOM更新结束后执行其指定的回调3.什么时间用当改变数据后,要基于更新后新的DOM进行某些操作时,要在nextTick所指定的回调函数中执行。1.App.vue<template><divid="root"><divclass="todo-container"><divclass="to......