目录
1. 什么是Vue
2. Vue3开发环境搭建
2.1 安装Node.js
2.1.1 下载Node.js
2.1.2 安装Node.js
2.1.3 JavaScript 包管理器
2.2 使用Vite 构建Vue应用程序
2.2.1 创建Vue项目
2.2.2 安装项目所需的依赖项
2.2.3 运行开发服务器
2.3 Vue项目结构
2.4 “Vue.js”插件
3. Vue内置元素
4. Vue基本语法
4.1 插值
4.2 v-bind
4.3 v-if,v-else
4.4 v-for
4.5 v-text和v-html
4.6 监听事件
5. 双向绑定
5.1 什么是双向绑定
5.2 在表单中使用双向数据绑定
6. Vue3新特性
6.1 基本语法
6.2 ref或reactive创建响应式对象
7. Vue组件
7.1 什么是组件
7.2 单文件组件
7.3 加载组件
7.4 组件通信
7.4.1 父组件向子组件通信
7.4.2 子组件向父组件通信
8. vue+elementUI
8.1 安装elementUI
9. 路由配置
9.1在Vue中引入路由
9.2 路由传参
9.3 动态路由
10. 生命周期
10.1 钩子函数
11. Axios
11.1 引入axios
11.1.1 安装
11.1.2 引入
11.2 什么是Axios
11.3 为什么要使用Axios
11.4 第一个Axios应用程序
Vue.js是一个流行的前端JavaScript框架,用于构建单页应用程序和可重用组件。Vue.js的设计目标是提供一种简单的方法来构建Web应用程序,同时尽可能地灵活和高效。Vue.js也被称为MVVM(Model-View-ViewModel)框架,因为它将应用程序的状态和行为分离成模型(model)、视图(view)和视图模型(viewmodel)的组件。
官网: Vue.js
Node.js是一个开源、跨平台、基于Chrome V8引擎的JavaScript运行时环境。它可让JavaScript用于服务器端编程,从而实现JavaScript的全栈应用。Vue.js作为一个JavaScript框架,本身并不依赖于Node.js,但在Vue.js的开发和部署过程中,通常需要使用Node.js进行一些操作。例如开发环境搭建、打包和部署和服务器端渲染等。因此,要使用Vue.js框架,首先需安装Node.js,以下是Node.js具体安装步骤。
访问Node.js 官网,选择下载。
下载时首先需要选择Node.js版本,建议选择长期支持版本(LTS),再选择操作系统版本,最后点击对应操作系统版本的下载链接,下载Node.js安装包。
下载完成后,双击安装包进行安装。按照安装向导提示进行安装即可,在选择安装目录时,建议不要安装在系统盘。
安装后的完整目录如下:
验证Node.js是否安装成功,在windows命令提示符输入如下命令:
node -v
如果命令行终端显示Node.js版本号,表示安装成功
JavaScript包管理器是一种工具,用于安装和管理开发中所需的JavaScript软件包,以下是常用的JavaScript包管理器。
下面介绍npm包管理器的使用。
(1)查看和设置npm配置信息
npm 配置信息是用于配置 npm 命令行工具和 npm 包管理器的一系列参数和选项。在 Windows 操作系统中,npm 配置信息存储在一系列文件中,包括全局配置文件和用户配置文件。
随 Node.js 一同安装的npm的全局配置文件位于Node.js安装目录下,用户配置文件位于当前用户的 home 目录下,注意,用户配置文件中的配置信息优先级高于全局配置文件中的配置信息,因此用户可以通过修改自己的 .npmrc 文件来自定义 npm 命令行工具和 npm 包管理器的行为。
查看npm配置信息,可在windows命令提示符输入如下命令:
npm config list
随同Node.js18.15.0版本 一同安装的npm配置信息如下所示:
配置信息解释如下:
可使用npm config set 命令设置 npm配置项,语法如下:
npm config set
[-g|--global]
key:配置项名称,例如 prefix、npm local prefix、cache 等。
value:要设置配置项的值,可以是任意字符串。
-g 或 –global:可选参数,表示设置全局的配置项,即修改全局的配置文件。如果不加该参数,则只会修改当前项目的配置文件。
例如,默认配置的prefix(全局包安装路径)和cache(缓存目录)配置都设置在系统盘,为避免C 盘空间不足导致系统运行缓慢、出现异常等问题,可将其设置到其它盘,命令如下:
npm config set prefix “F:\nodejs\node_global”
npm config set cache “F:\nodejs\node_cache”
上述命令将prefix(全局包安装路径)和cache(缓存目录)分别设置在本书Node.js安装目录的【node_global】和【node_cache】子目录下,注意,需要新建这两个子目录,命令执行后,查看npm配置信息结果如下所示:
(2)更新npm包管理器版本
随Node.js一同安装的npm可能不是最新版本,在安装完成Node.js后,建议升级npm至最新版本,Windows命令如下:
npm install -g npm --force
这个命令会全局安装最新版本的npm,安装路径为上面配置好的prefix路径,即【F:\nodejs\node_global】文件夹。命令中的—force参数表示使用管理员权限运行命令,注意,只有在权限不够时才使用此参数。执行结果如图:
(3)设置国内npm镜像源
由于官方 npm 源设置在国外,国内访问速度慢、不稳定,可能导致npm包下载失败,使用npm国内镜像源可解决此问题。查看npm源,命令如下:
npm config get registry
设置国内npm镜像源(本书为淘宝镜像),命令如下:
npm config set registry https://registry.npm.taobao.org/
命令执行结果如图:
Vite 是一个现代化的前端构建工具,特别适合构建 Vue.js 应用程序。通过预构建和懒加载等优化方式实现快速开发和热更新,同时内置了一些优化策略,可以提高应用程序的性能和用户体验。
如何使用Vite 构建Vue应用程序,可参考官网 Vite官方中文文档 ,该网站提供包括安装Vite,创建Vue项目,配置Vite选项,以及Vite开发服务器的使用方法等。此外,还提供丰富的文档和示例代码,帮助我们更好地理解和使用Vite。
在命令行中进入希望创建项目的目录,执行以下命令:
npm create vite@latest my-vue-app -- --template vue
上述命令用来创建一个基于 Vue.js 模板的 Vite 项目的,具体解释如下:
命令执行后将在当前目录下创建一个名为 my-vue-app 的新项目,Vite 将会安装到项目的 node_modules 目录下,并会初始化一个 Vue 项目的基本结构,包括一个最小化的 Vue 应用程序示例。使用IDEA新建或打开一个项目,接着在IDEA内置命令行terminal中输入上述创建Vue项目命令,如图:
使用npm create命令创建Vue项目,会生成一个基本的项目结构和文件,但还需要安装一些依赖项,首先在terminal中执行如下命令:
cd my-vue-app
进入创建的 Vue项目所在目录,my-vue-app 是项目名称。
接着执行如下命令:
npm install
安装项目所需依赖项。命令执行后,NPM 将读取项目根目录下的package.json 文件,并下载和安装所有在 dependencies 和 devDependencies 中列出的依赖项。
在项目目录下,运行以下命令启动项目开发服务器。
npm run dev
命令执行结果如图:
点击图中自动生成的服务器地址,会在默认浏览器中打开项目主页,主页效果如下:
使用Vite创建Vue项目后,项目结构如图:
下面对各个文件夹和文件进行详细说明:
了让IDEA支持Vue语法,应安装Vue.js插件。安装步骤如下:
选项 | 说明 |
data | Vue实例数据对象 |
methods | 定义Vue实例中的方法 |
components | 定义子组件 |
computed | 计算属性 |
filters | 过滤器 |
el | 唯一根元素 |
watch | 监听数据变化 |
el属性
用来指示vue编译器从什么地方开始解析 vue的语法,可以说是一个占位符。
data属性
用来组织从view中抽象出来的属性,可以说将视图的数据抽象出来存放在data中。
components属性
定义子组件
methods属性
放置页面中的业务逻辑,js方法一般都放置在methods中
filters属性
在页面中直接操作数据,返回最终结果。
computed属性
用来计算
watch属性
watch:function(new,old){}
监听data中数据的变化
两个参数,一个返回新值,一个返回旧值。
插值用于将数据绑定到模板中,从而创建动态用户界面。其语法使用一对双括号{{}}将表达式括起来。
{{ message }}
{{ '使用算式表达式:' + (count+1) }}
{{ '使用三目运算符:' + (isShow ? '值为真' : '值为假') }}
{{ '调用随机函数:' + Math.random() }}
{{ '调用对象属性:' + obj.prop }}
除了上述方法,也可以使用v-bind来绑定元素特性 。
单项绑定:修改变量的值,标签属性值自动更新。
输入框:
{{ message }}
上述指令的意思是:将这个元素节点的active特性和Vue实例的isActive属性保持一致。
{{ productName }}
{{ productDescription }}
很抱歉,该商品已售罄。
该商品库存紧张,请尽快下单。
该商品正在正常销售中,欢迎购买。
{{item.message}}
例子:
姓名 年龄 成绩
我们可以使用
v-on
指令 (简写为@
) 来监听 DOM 事件,并在事件触发时执行对应的 JavaScript。用法:v-on:click="methodName"
或@click="handler"
。
事件处理器的值可以是:
内联事件处理器:事件被触发时执行的内联 JavaScript 语句 (与 onclick
类似)。
方法事件处理器:一个指向组件上定义的方法的属性名或是路径。
当 v-on 的值为一个方法时,有如下几点需要注意。
方法必须在 Vue 实例 methods 选项中定义,否则报错。
在方法中可以使用 this 关键字访问 Vue 实例定义的数据和方法。
在方法中使用 event 对象,需要在参数列表中声明。
事件参考:jQueryAPI中文文档
修改变量的值,标签值自动变化;反过来,修改标签的值,变量的值也跟着更新,这就是双向绑定。
v-model
还可以用于各种不同类型的输入,
元素。它会根据所使用的元素自动使用对应的 DOM 属性和事件组合:
- 文本类型的 和
- 和 会绑定 checked property 并侦听 change 事件;
注意:v-model会忽略任何表单元素上初始的
value、
checked或
selected attribute。它将始终将当前绑定的 JavaScript 状态视为数据的正确来源。你应该在 JavaScript 中使用
data` 选项来声明该初始值。
输入的文本:
例子:伪登录功能,当用户名是admin,密码是123456时,弹出登录成功,否则弹出登录失败。
用户名:
密 码:
需要将 setup attribute 添加到
在vue3中通过组件data的方法来定义一些当前组件的数据
在vue3中可以直接使用,当使用 的时候,任何在
监听事件,语法格式:function 函数名() { 函数体 }
响应式状态需要用ref /reactive,ref /reactive值在模板中使用的时候会自动解包
账号:
例子:伪登录功能,当用户名是admin,密码是123456时,弹出登录成功,否则弹出登录失败。
用户:
密码:
在Vue中,组件是构成页面中独立结构单元,组件主要以页面结构形式存在,不同组件也具有基本交互功能。
组件特性:
通常会以一棵嵌套的组件树来表达组件的组织。
Vue单文件组件(又名*.vue文件),是一种特殊的文件格式,它允许将Vue组件的模板、逻辑与样式封装到单个文件中
{{message}}
第一步:引入组件
import OneDemo from "./components/OneDemo.vue";
第二步:显示/使用组件
注意:当使用 的时候,任何在
2. 子组件
{{ msg }}
$emit 也就是通过自定义事件传值,主要用于子组件向父组件通信。
步骤1:在当前项目安装Emelemt plus,命令如下:
npm install element-plus
步骤2:在修改新建Vue项目的main.js,引入Emelemt plus支持
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')
在Vue中,可以通过vue-router管理页面之间的关系,例如:页面跳转。
Vue Router是Vue.js的官方路由,它与Vue.js核心深度集成,让Vue.js构建单页应用变得轻而易举。
1.安装路由
npm i vue-router@latest
2.配置单独的路由文件
在src文件夹下创建router文件夹,在该router目录下创建index.js文件,在其中引入路由和相关组件,配置路由路径,代码如下:
//引入路由依赖
import {createRouter, createWebHashHistory} from 'vue-router'
//引入相关组件
//路由配置
const router = createRouter({
history: createWebHashHistory(),
routes: [
{
//默认路径
path: '/',
//对应的组件
component:
},
]
})
export default router;
3.在main.js中引入路由文件
import router from './router/router.js'
const app=createApp(App)
app.use(router)
app.mount('#app')
4.指定路由显示入口
在App.vue文件中,使用
5.指定路由跳转
首页 |
内容页 |
页面跳转过程中,是可以携带参数的,例如:在一个列表项,点击进入查看每个列表项的详情。
1.在路由中配置指定的参数key
{
path:'/details/:name',
//异步加载
component:()=>import('../components/DetailsDemo.vue')
}
2.在跳转过程中携带参数
新建NewsDemo.vue,新闻页:
百度新闻
网易新闻
今日头条
3.在详情页面读取路由携带的参数
新建DetailsDemo.vue,详情页:
新闻详情
{{$route.params.name}}
以编辑为案例进行讲解.
1.引入useRouter
import {useRouter} from "vue-router";
2.实例化router对象
const router=new useRouter();
3.用router.push跳转页面
function edit(user){
router.push({path:'/edit',query:{id:user.id,name:user.name,sex:user.sex}})
}
4.如果有参数的话,在接收页面引入API--useRoute
import {useRoute} from "vue-router";
5.在接收页面定义变量route,获取传过来的变量
const route=useRoute();
let id=route.query.id;
let name=route.query.name;
let sex=route.query.sex;
钩子函数:钩子函数用来描述Vue实例从创建到销毁的整个生命周期。
setup( ) 开始创建组件之前 在beforeCreate 和 created 之前执行 创建的是 data 和 method
钩子 | 说明 |
onBeforeMount | 页面渲染成功之前执行 |
onMounted | 页面渲染成功之后执行 |
onBeforeUpdate | 组件更新之前执行 |
onUpdated | 组件更新之后执行 |
onBeforeUnmount | 实例销毁之前执行 |
onUnmount | 实例销毁之后执行 |
Axios的应用是需要单独安装的
npm install axios
在组件中引入
import axios from 'axios'
Axios是一个开源的可以用在浏览器和Node.js的异步通信框架,其主要作用就是AJAX异步通信,其功能特点如下:
1.从浏览器中创建:XMLHttpRequests
2.从node.js创建http请求
3.支持Promise API[JS中的链式编程]
4.拦截请求和响应
5.转换请求数据和响应数据
6.取消请求
7.自动转换JSON数据
8.客户端支持防御XSRF(跨站请求伪造)
由于Vue.js是一个视图层框架,所以并不包含AJAX的通信功能,为了解决通信问题,作者单独开发了一个名为vue-resource的插件,在2.0版本以后停止了对该插件的维护并推荐Axios框架。
开发的接口大部分都采用JSON格式。
Title