vue基本概念
vue介绍
- Vue 是一套用于构建用户界面的渐进式javascript框架。
渐进式的概念
渐进式:逐渐增强,可以在项目中使用vue的一部分功能,也可以使用vue的全家桶来管理整个项目。
angular: 全家桶
Library
- 代表:moment axios
- 库,本质上是一些函数的集合。每次调用函数,实现一个特定的功能 工具箱
- 使用库的时候,把库当成工具使用,需要自己控制代码的执行逻辑。
Framework
- 代表:vue、angular、react、bootstrap
- 框架,是一套完整的解决方案
- 使用框架的时候,框架实现了大部分的功能,我们只需要按照框架的规则写代码
库和框架的区别
- 使用库的时候,很自由,只要调用库提供的各种各样的方法就行,也可以不用其他的一些方法
- 使用框架的时候,需要按照框架的规则写代码,限制会非常多,但同时框架的功能也很强大,可以极大的提升开发的效率。
vue是 MVVM 的框架
-
MVVM思想:一种软件架构模式,决定了写代码的方式。
- M:model数据模型(ajax获取到的数据)
- V:view视图(页面)
- VM:ViewModel 视图模型
-
MVVM通过
数据双向绑定让数据自动地双向同步 不在需要操作DOM- V(修改视图) -> M(数据自动同步)
- M(修改数据) -> V(视图自动同步)
-
在vue中,不推荐直接手动操作DOM!
-
在vue中,通过数据驱动视图,不要在想着怎么操作DOM,而是想着如何操作数据!
开发vue的方式
开发vue有两种方式
- 传统开发模式:基于html/css/js文件开发vue
- 工程化开发方式:在webpack环境中开发vue,这是最推荐的方式。
- 现代化的项目也都是在webpack环境下进行开发的。
vue-cli的使用
vue-cli也叫vue脚手架,vue-cli是vue官方提供的一个全局命令工具,这个命令可以帮助我们快速的创建一个vue项目的基础架子。
基本使用
- 全局安装命令
npm install -g @vue/cli
yarn global add @vue/cli
- 查看版本
vue
vue --version
vue --V
- 初始化一个vue项目
vue create 项目名(不能用中文)
- 启动项目
yarn serve
yarn build
如何覆盖webpack配置
注意:我们在项目无法找到webpack.config.js文件,因为vue把它隐藏。
如果需要覆盖webpack的配置,可以修改vue.config.js文件,覆盖webpack配置文件
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true,
// 配置端口号
devServer: {
port:3000, // 设置端口号,
open:true, // 自动打开浏览器
host:'127.0.0.1' / 'localhost' // 设置IP地址
#配置号新的端口号要重新启动项目
}
})
目录分析与清理
- public/index.html不用动,提供一个最基础的页面
- src/main.js不用动, 渲染了App.vue组件
- src/App.vue默认有很多的内容,可以全部删除
<template>
<div>123</div>
</template>
- assets文件夹与components直接删除
vue项目各个文件作用
| vue-code | 项目名称(不固定) |
|---|---|
| node_modules | 项目依赖的第三方包 |
| public | 静态文件目录 |
| favicon.ico | 浏览器小图标 |
| index.html | 单页面html文件(网页浏览的) |
| src | 业务文件夹 |
| assets | 静态资源 |
| logo.png | vue的logo |
| components | 组件目录 |
| App.vue | 整个应用的根组件 |
| main.js | vue页面入口 |
| .gttignore | git提交的忽略配置 |
| babel.config.js | babel配置,兼容低版本,降级 |
| package.json | 依赖包列表文件 |
| README.md | 项目说明 |
| yarn.lock | 项目包版本和缓存地址 |
vue单文件组件的说明
一个.vue文件就是一个组件,后续开发vue,所有的功能都是基于组件实现。
安装插件
一个单文件组件由三部分构成
-
template(必须) 影响组件渲染的结构 html
- 只能有一个根元素
-
script 逻辑 js
-
style 样式 css less scss
- style用于提供组件的样式,默认只能用css
- 可以通过
lang="less"开启less的功能,需要安装依赖包
yarn add less-loader@7.2.1 less -D