一、项目创建
- 安装Node.js
- 建立一个项目
- 项目结构
- node_modules -- 存储依赖项
- public -- 存放静态图像(favicon.ico)
- index.html -- 项目的入口点
- .vue文件结构
<template><header> #vue2中必须有唯一的根元素<div> <script> <style>
npm create vue@latest
#安装依赖
npm install
#启动项目
npm run dev #vue3
npm run serve #vue2
二、双向绑定——页面元素值与脚本中的数据同步更新
- 对象的绑定(也可以使用ref)
- 绑定对象中的属性
- 绑定元素
import { ref, reactive } from "vue";
#使用reactive绑定
let salaryInfo = reactive({name:'roy',salary:15000})
salaryInfo.salary += 1000 #不用.value
#使用ref绑定
let salaryInfo = ref({name:'roy',salary:15000})
salaryInfo.value.salary += 1000
let salaryInfo = reactive({name:'roy',salary:15000})
let name = toRef(salaryIngo, "name")
let salary = toRef(salaryIngo, "salary")
#或者
let {name, salary}= toRefs(salaryIngo)
<input ref="name" abc="123"/>
#输出ref对象
console.log(name)
#输出input元素
console.log(name.value)
#输出元素内的值
console.log(name.value.value)
#输出123
console.log(name.value.getAttribute("abc")
三、自定义组件传参
- 子组件向父组件传递参数
## 子组件son.vue let name = ref("roy") let salary = ref(10000) # 将参数暴露给父组件 defineExpose({name, salary})
## 父组件father.vue # 在模板中使用子组件 <div> <son ref="salaryInfo"></son> </div> # 导入子组件 import son from "./components/son.vue" # 输出ref对象 console.log(salaryInfo) # 输出proxy对象 console.log(salaryInfo.value) # 输出子组件中的name console.log(salaryInfo.value.name) # 输出子组件中的salary console.log(salaryInfo.value.salary) - 父组件向子组件传递参数
##子组件son.vue
let name = ref("roy")
let salary = ref(10000)
#将参数暴露给父组件
defineProps(["salaryInfo"])
--------------------------------------
##父组件father.vue
#在模板中使用子组件
<div>
<son :salary-info="salaryInfo"></son> #html页面对大小写不敏感,props中驼峰命名在父组件中
#使用时必须用等价的短横线分割命名
</div>
#导入子组件
import son from "./components/son.vue"
let salaryInfo = reactive({name:'roy', salary:15000})
需要使用TypeScript定义一个salaryInfo的类型接口
四、生命周期
包括创建、挂载、更新和销毁四个阶段。
- 创建阶段(beforeCreate、created):初始化响应式数据和事件
- 挂载阶段(beforeMount、mounted):将模板编译渲染成真实的DOM并插入页面
- 更新阶段(beforeUpdate、updated):当数据变化时,虚拟DOM重新渲染和打补丁
- 卸载阶段(beforeUnmount(Vue 3) / beforeDestroy(Vue 2)、unmounted(Vue 3) / destroyed(Vue 2)):实例被销毁
父子组件生命周期
加载渲染过程:
父 beforeCreate -> 父 created -> 父 beforeMount ->
子 beforeCreate -> 子 created -> 子 beforeMount -> 子 mounted
-> 父 mounted
更新过程:
父 beforeUpdate ->
子 beforeUpdate -> 子 updated
-> 父 updated
销毁过程:
父 beforeUnmount ->
子 beforeUnmount -> 子 unmounted
-> 父 unmounted
五、Vue-Router
- 安装
#创建项目时引入,或者
npm install vue-router@4 #版本号4
六、Pinia
- 安装
#创建项目时引入,或者
npm install pinia


雷达卡


京公网安备 11010802022788号







