谷歌浏览器vue插件下载和安装,百度搜索“极简插件”
vue3中兼容vue2的语法
setup比data中数据赋值的早
setup 语法糖学习
-D表示开发依赖
安装这个是为了组件的名字也能写在setup 标签内
npm i vite-plugin-vue-setup-extend -D
安装完成之后 在vite.config.ts 中引入才可以起作用
import vueSetupExtend from "vite-plugin-vue-setup-extend";
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue(), vueSetupExtend()],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
使用ref创建基本类型、对象类型(内部还是通过reactive实现的)的响应式编程
使用reactive创建对象类型数据的响应式编程
配置volar 自动配置value
截屏2024-03-04 17.18.35.png 截屏2024-03-04 17.33.48.png 截屏2024-03-04 17.40.18.pngcomputed 有计算缓存 多次调用相同的会直接从缓存读取,不会多次执行
所以涉及多次调用生成相同值的 用computed 效率比较高
watch 能监视5种情况(官方是说4种情况,其实是五种)
截屏2024-03-05 17.52.32.png
改变对象的话
reactive修饰的对象地址没变化,里面的属性,相同的值覆盖了
reactive 会隐式的创建深层监听,deep即使设置为false也关不掉监听
Object.assign(person, { name: "项羽", age: 20 })
ref的话,直接替换了对象
person.value = { name: "项羽", age: 20 }
截屏2024-03-06 14.46.39.png
截屏2024-03-06 14.54.46.png 截屏2024-03-06 14.59.27.png
感觉有问题 ||的条件写在一起 前边的符合了才会打印,后边的改变了没触发 为了不出问题 建议或者的多条件的分开成多个写
截屏2024-03-06 18.11.43.png
ref标签可以解决id冲突问题
ref 获取组件中的属性需要
defineExpose({
a, b, c
})
Hooks里面可以写生命周期函数,根据各自的生命周期执行函数
反向单引号`叫做模板字符串
第一种query传参方法:
<RouterLink :to="`/news/detail?id=${item.id}&title=${item.title}&content=${item.content}`">{{ item.title }}
</RouterLink>
第二种query传参方法:
<RouterLink :to="{
path: '/news/detail',
query: {
id: item.id,
title: item.title,
content: item.content
}
}">{{ item.title }}
从响应式的对象身上直接解构,会丢失响应,可以用torefs
import { toRefs } from 'vue';
import { useRoute } from 'vue-router'
let route = useRoute();
let { query } = toRefs(route);
第一种params方式传参,路由中需要配置相应接收参数
<RouterLink to="/news/detail/哈哈/你好/嘿嘿">{{ item.title }}
</RouterLink>
<RouterLink :to="`/news/detail/${item.id}/${item.title}/${item.content}`">{{ item.title }}
</RouterLink>
{
name: "xinwen",
path: "/news",
component: News,
children: [
{
path: "detail/:id/:title/:content",
component: Detail,
},
],
},
第二种params方式传参
<RouterLink :to="{
name: 'detail',
params: { id: item.id, content: item.content, title: item.title }
}">
{{ item.title }}
</RouterLink>
params不能传递对象
截屏2024-03-11 11.41.08.png 截屏2024-03-11 11.48.33.png
mitt 有点像通知机制
消息订阅和消息发布
v-model 本质是一个动态的value值配合一个@input事件
截屏2024-03-14 11.58.36.png 截屏2024-03-14 12.05.57.png 截屏2024-03-14 12.05.12.png
vue3 插槽
1、默认插槽
2、具名插槽
截屏2024-03-15 17.12.49.png还可以直接
#s1
3、作用域插槽
截屏2024-03-15 17.12.49.png
还可以使用解构写法
截屏2024-03-15 17.31.25.png
shallowRef和shallowReactive
只会管第一层的响应式,再往里面一层的就不是响应式了
只关注整体修改的话用shallowRef能够增加效率
截屏2024-03-18 11.37.02.png
toRaw 能将响应式数据转换成一般原始数据
截屏2024-03-18 11.57.18.png 截屏2024-03-19 10.02.38.png
自定义ref customRef
image.png 截屏2024-03-19 11.43.33.png
网友评论