初识vue3
Vue3
vue3 安装
vue --version
## 安装或者升级你的@vue/cli
npm install -g @vue/cli
## 创建
vue create myv3
## 启动
cd myv3
npm run serve
vue3特点
- 新增组合式api
- 更加接近原生js
- 按需加载
vscode插件推荐
vetur
Vue Volar extension Pack
便于vue项目开发
vue3与vue2基本相同
不同点
启动方式
v3
import {createApp} from 'vue'
createApp(App).use(router).use(store).mount("#app")
v2
import Vue from 'vue'
new Vue({
store,
router,
render:h=>h(App)
}).$mount("#app")
全局方法挂载
v3
app.config.globalProperties.$say = function(msg){alert(msg)}
a
v2
Vue.prototype.$say = function(msg){alert(msg)}
根节点
v3 可以有多个根节点
v2 只能有一个根节点
生命周期,卸载
v3
beforeUnmount()
组件将要卸载
unmounted
组件已经卸载
生命周期函数 vue3 中的生命周期函数, 需要在 setup 中调用
const MyComponent = {
setup() {
onMounted(() => {
console.log('mounted!')
})
onUpdated(() => {
console.log('updated!')
})
onUnmounted(() => {
console.log('unmounted!')
})
}
}
v2
beforeDestroy()
destroyed()
setup api
ref
创建值类型响应式数据方法
在seup
内部需要.value
来访问设置值
reactive
创建引用类型响应式数据方法
defineProps
定义 组传的传参props
defineEmits
定义组件发送的事件
watch
监听一个数据的变化
watchEffect
监听多个数据
生命周期
setup
中的生命周期,没有beforeCreate
与created
setup
的生命周期需要加on前缀
ref 函数
作用: 定义一个响应式的数据(主要针对基础类型数据) 方法:引入 ref 函数,const xxx = ref(initValue) 模板中读取数据: 不需要.value,直接:<div>{{xxx}}</div>
reactive函数
作用: 定义一个对象类型的响应式数据(基本类型不要用它,要用ref函数)
语法:const 代理对象= reactive(源对象)接收一个对象(或数组),返回一个代理对象(Proxy的- - 实例对象,简称proxy对象reactive定义的响应式数据是“深层次的”。
reactive定义的数据:操作数据与读取数据:均不需要.value
总结 ref 和 reactive
-
从定义数据角度对比
-
ref 用来定义:基本类型数据。
-
reactive 用来定义:对象(或数组)类型数据。
-
备注:ref 也可以用来定义对象(或数组)类型数据, 它内部会自动通过
reactive
转为代理对象。 -
从原理角度对比
-
ref 通过
Object.defineProperty()
的get
与set
来实现响应式(数据劫持)。 -
reactive 通过使用 Proxy 来实现响应式(数据劫持), 并通过 Reflect 操作源对象内部的数据。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现