vue3+ts +pinia 自己记录的 写的乱

1,父传子

const props = defineProps({
    type: {
        default: 'edit',
        type: String,
    },

});
 

标签

 vue3(中没有this)

vue3+ts +pinia 自己记录的 写的乱_第1张图片

父子组件传参 

 单个父子传参  子组件

 vue3+ts +pinia 自己记录的 写的乱_第2张图片

vue3+ts +pinia 自己记录的 写的乱_第3张图片

 多个父子传参

用v-model 可以直接更改子组件的数据

 vue3+ts +pinia 自己记录的 写的乱_第4张图片

 useAttrs 可以获取父组件传参的所有内容  事件也能接收到

vue3+ts +pinia 自己记录的 写的乱_第5张图片

 使用 或者不用    :type  直接用  :

vue3+ts +pinia 自己记录的 写的乱_第6张图片

 useAttrs 和defineprops不能用时使用  props的优先级更高 

vue3+ts +pinia 自己记录的 写的乱_第7张图片

 ref 获取真是的dom节点 及子组件的实力vc

$parent 可以在子组件内部获取到父组件的实力

子组件必须对外暴露 父组件才可以读取到

vue3+ts +pinia 自己记录的 写的乱_第8张图片

 $parent

vue3+ts +pinia 自己记录的 写的乱_第9张图片

 provide (提供)和inject 注入   隔辈传入数据(数据可更改)

父组件

vue3+ts +pinia 自己记录的 写的乱_第10张图片

 子组件 使用并修改

vue3+ts +pinia 自己记录的 写的乱_第11张图片

 pinia 的使用  相当于vuex的储存  

vue3+ts +pinia 自己记录的 写的乱_第12张图片

 使用必须引入在赋值

vue3+ts +pinia 自己记录的 写的乱_第13张图片

 获取值   (ref数值必须。value 获取)

1,(比较少用)

vue3+ts +pinia 自己记录的 写的乱_第14张图片

 2,使用比较不简洁

vue3+ts +pinia 自己记录的 写的乱_第15张图片

3,用pinia的 storeTorefs

vue3+ts +pinia 自己记录的 写的乱_第16张图片

修改数据  直接改

vue3+ts +pinia 自己记录的 写的乱_第17张图片

//第二种方法 (很多数据使用第二种)

vue3+ts +pinia 自己记录的 写的乱_第18张图片

 第三种使用方式

store中   actions

vue3+ts +pinia 自己记录的 写的乱_第19张图片

 使用的时候直接调取

 vue3+ts +pinia 自己记录的 写的乱_第20张图片

例如: 

 vue3+ts +pinia 自己记录的 写的乱_第21张图片

 vue3+ts +pinia 自己记录的 写的乱_第22张图片

 getters

1,第一种

vue3+ts +pinia 自己记录的 写的乱_第23张图片

 2,第二种用this和不用this都行

vue3+ts +pinia 自己记录的 写的乱_第24张图片

 vue3+ts +pinia 自己记录的 写的乱_第25张图片

 或()不用值  可以用ts中的给个样式

vue3+ts +pinia 自己记录的 写的乱_第26张图片

 订阅   $subscribe 监听store的值 

vue3+ts +pinia 自己记录的 写的乱_第27张图片

 使用  可以在监听的时候存储在本地存储

vue3+ts +pinia 自己记录的 写的乱_第28张图片

 拿本地存储 使关闭浏览器仍然在   as string  断言就是个字符串  

vue3+ts +pinia 自己记录的 写的乱_第29张图片

store 写法  组合式store

vue3+ts +pinia 自己记录的 写的乱_第30张图片

 组合式store

vue3+ts +pinia 自己记录的 写的乱_第31张图片

wacth 

监听的时候不用  (不是对象).value

vue3+ts +pinia 自己记录的 写的乱_第32张图片

监听对象是需要.vaule

1第一种方法  监听的是ref的值

vue3+ts +pinia 自己记录的 写的乱_第33张图片

vue3+ts +pinia 自己记录的 写的乱_第34张图片

immediate 上来就检视

 或者是深度监听  监听所有:

vue3+ts +pinia 自己记录的 写的乱_第35张图片

 3,watch监听一个和监听多个 

vue3+ts +pinia 自己记录的 写的乱_第36张图片

 完整的

vue3+ts +pinia 自己记录的 写的乱_第37张图片

监听对象的值: 如果用上面的  新值旧值都是新值

1,需要.value   可以获取到

vue3+ts +pinia 自己记录的 写的乱_第38张图片

 2,如果嵌套层次比较多

vue3+ts +pinia 自己记录的 写的乱_第39张图片

 如果直接检视reactive相应书的值 deep无效vue3+ts +pinia 自己记录的 写的乱_第40张图片

监听对象中的某个属性 写成函数

vue3+ts +pinia 自己记录的 写的乱_第41张图片

监听对象中的某些属性 写成数组

vue3+ts +pinia 自己记录的 写的乱_第42张图片

特殊情况 监听job  加deep:true

vue3+ts +pinia 自己记录的 写的乱_第43张图片

vue3+ts +pinia 自己记录的 写的乱_第44张图片

 watchEffect  一下监视所有   只要使用了都监视了

vue3+ts +pinia 自己记录的 写的乱_第45张图片

 vue3+ts +pinia 自己记录的 写的乱_第46张图片

计算属性 computed

只读的

vue3+ts +pinia 自己记录的 写的乱_第47张图片

可以修改的完整写法

vue3+ts +pinia 自己记录的 写的乱_第48张图片

 组件通信 (page路由组件)

1,父子组件通信   父传子

vue3+ts +pinia 自己记录的 写的乱_第49张图片

父传子

vue3+ts +pinia 自己记录的 写的乱_第50张图片 vue3+ts +pinia 自己记录的 写的乱_第51张图片

 2,自定义事件

传参的事件对象$event  

vue3+ts +pinia 自己记录的 写的乱_第52张图片

 ref的数据在母版里面不用value

 vue3+ts +pinia 自己记录的 写的乱_第53张图片

 vue3+ts +pinia 自己记录的 写的乱_第54张图片

 vue3+ts +pinia 自己记录的 写的乱_第55张图片

 3,发布订阅  mitt   任意组件通信

vue3+ts +pinia 自己记录的 写的乱_第56张图片

 在main 中引入 

vue3+ts +pinia 自己记录的 写的乱_第57张图片

绑定事件

vue3+ts +pinia 自己记录的 写的乱_第58张图片vue3+ts +pinia 自己记录的 写的乱_第59张图片

 使用  这是两个子组件的举例  任意组件通信

vue3+ts +pinia 自己记录的 写的乱_第60张图片

但是在组件卸载时解绑它 要不然占内容

vue3+ts +pinia 自己记录的 写的乱_第61张图片

 4,v-model  不常用

vue3+ts +pinia 自己记录的 写的乱_第62张图片

总共

vue3+ts +pinia 自己记录的 写的乱_第63张图片

 ref(都可以)和reactive(只能定义对象,定义的数据不能直接修改能用它

 vue3+ts +pinia 自己记录的 写的乱_第64张图片

 vue3+ts +pinia 自己记录的 写的乱_第65张图片

 使用

vue3+ts +pinia 自己记录的 写的乱_第66张图片

shallowref(只能处理浅层次的  )针对与多层次的数据   ref能把所有的都改成响应式的   

深层次的

浅层次的 

 vue3+ts +pinia 自己记录的 写的乱_第67张图片

 shallowReactive (也是能改第一层)

vue3+ts +pinia 自己记录的 写的乱_第68张图片

readonly 只读 不能直接赋值 例如(99) 只能是响应式的  用来保护数据

shallreadonly 浅层只读

ref和reactive都可以

vue3+ts +pinia 自己记录的 写的乱_第69张图片

sum2不能改 sum1可以改 sum2随着sum1变动

就是保护sum1的数据  要是想要不动  就用readonly 复制个只读的sum2  防止过程中动到sum1

 toraw 可以把响应式对象改为原始对象 (改数据不变了)

vue3+ts +pinia 自己记录的 写的乱_第70张图片

 markRaw  标记一个对象 使其永远不会成为响应式

vue3+ts +pinia 自己记录的 写的乱_第71张图片

例如 mockjs

vue3+ts +pinia 自己记录的 写的乱_第72张图片

mockjs响应式不能用于响应式的 

vue3+ts +pinia 自己记录的 写的乱_第73张图片

 cusromRef 自定义ref

vue3+ts +pinia 自己记录的 写的乱_第74张图片

 例如 改变一个值之后想要一秒钟之后页面数据在变 默认ref不能实现

vue3+ts +pinia 自己记录的 写的乱_第75张图片

 vue3+ts +pinia 自己记录的 写的乱_第76张图片

 有track ()告诉vue 数据很重要,你要对msg进行持续关注,一旦msg变化就去更新

和trigger()通知vue 一下数据msg‘变化    参数才能变vue3+ts +pinia 自己记录的 写的乱_第77张图片

 定时器记得去除

vue3+ts +pinia 自己记录的 写的乱_第78张图片

 vue3+ts +pinia 自己记录的 写的乱_第79张图片

 公司一般封装hoos  一般文件us开头

vue3+ts +pinia 自己记录的 写的乱_第80张图片

vue3+ts +pinia 自己记录的 写的乱_第81张图片

使用

vue3+ts +pinia 自己记录的 写的乱_第82张图片

midal框  模态框   teleport传送门

弹窗

vue3+ts +pinia 自己记录的 写的乱_第83张图片

vue3+ts +pinia 自己记录的 写的乱_第84张图片

 vue3+ts +pinia 自己记录的 写的乱_第85张图片

 vue3+ts +pinia 自己记录的 写的乱_第86张图片

加上它 参考窗口定位就不行了就参考父容器定位了

vue3+ts +pinia 自己记录的 写的乱_第87张图片

 teleport 组件 传送门

vue3+ts +pinia 自己记录的 写的乱_第88张图片

    Suspenbse   setup 里面 await 不用aync 

vue3+ts +pinia 自己记录的 写的乱_第89张图片

因为有异步组件    这个时候子组件不显示了   用Suspenbse 包裹   为了在加载中有东西呈现 (加载中)

vue3+ts +pinia 自己记录的 写的乱_第90张图片

 这个是加在的时候有loading

vue3+ts +pinia 自己记录的 写的乱_第91张图片

全局属性

main

配置全据数据

vue3+ts +pinia 自己记录的 写的乱_第92张图片

 使用

 vue3+ts +pinia 自己记录的 写的乱_第93张图片

配置全局属性  main.js

vue3+ts +pinia 自己记录的 写的乱_第94张图片

 使用

vue3+ts +pinia 自己记录的 写的乱_第95张图片

vue2 和vue3的区别

vue.(vue2)  变成了app.(vue3)

vue3+ts +pinia 自己记录的 写的乱_第96张图片

 参考vue3的文档

vue3+ts +pinia 自己记录的 写的乱_第97张图片

 TypeScript 与组合式 API | Vue.js

你可能感兴趣的:(vue.js,前端,javascript)