Vue3

setup选项 语法糖

//reactive: 接收一个对象类型的数据,返回一个响应式的对象'
// import { reactive } from 'vue'
// ref 接收简单类型或复杂类型 返回一个响应式的对象  
// 本质:原有对象的基础上包了一层对象 包成了复杂类型
// 原理:包成复杂数据类型后 再借助reactive 实现响应式

// 1.脚本中访问数据 .value
// 2.template 不需要.value (扒掉了一层)

计算属性

默认只读,也可以设置get,set

watch

// 1.监视单个数据的变化

  // watch(ref对象,(newValue,oldValue)=>{...})
  watch(count,(newValue,oldValue)=>{
    console.log(newValue,oldValue)
  })

  // 2.监视多个数据的变化
  // watch([ref对象1,ref对象2],(newArr,oldArr)=>{...})
  watch([count,nikename],(newArr,oldArr)=>{
    console.log(newArr,oldArr)
  })
  // 3.immediate 立即执行
  // watch(count,(newValue,oldValue)=>{
  //   console.log(newValue,oldValue)
  // },{
  //   immediate:true
  // })
  // 4.deep 深度监视  默认watch是浅层监视
  // const ref1 = ref(简单类型) 直接监视
  // const ref2 = ref(复杂类型) 监视不到复杂类型内部数据的变化
  const userInfo = ref({
    name:'张三',
    age:18
  })
  const setUserInfo=()=>{
    // 修改了userInfo.value修改了对象的地址.才能监视到
    // userInfo.value = {name:'ls',age:10}
    userInfo.value.age++
  }
  watch(userInfo,(newValue)=>{
    console.log(newValue)
  },{
    deep:true
  })
  // 对于对象中的属性 精确监听
  watch(()=>userInfo.value.age,(newValue,oldValue)=>{
    console.log(newValue,oldValue)
  })

父子通信

父传子

子传父

模版应用

provide和inject

传递provide('key','value' )接收inject('key')

defineOptions

defineOptions 宏。顾名思义,主要是用来定义 Options API 的选项。可以用 defineOptions 定义任意的选项, props, emits, expose, slots 除外(因为这些可以使用 defineXXX 来做到)

defineOptions({
  name:'Foo',
  //...更多自定义属性
})

defineModel

正常情况

使用defineModel

pinia

import { createApp } from 'vue'
import { createPinia } from 'pinia'
import App from './App.vue'
const pinia = createPinia() //创建pinia实例
const app = createApp(App)  //创建根实例
app.use(pinia)  //pinia插件的安装配置
app.mount('#app') //视图的挂载

使用

Setup Store 中:

  • ref() 就是 state 属性

  • computed() 就是 getters

  • function() 就是 actions

异步操作

解构

使用storeToRefs函数可以辅助保持数据(state + getter)的响应式解构

<script setup>
import { storeToRefs } from 'pinia'
const store = useCounterStore()
// name 和 doubleCount 都是响应式引用
// 下面的代码同样会提取那些来自插件的属性的响应式引用
// 但是会跳过所有的 action 或者非响应式(非 ref 或者 非 reactive)的属性
const { name, doubleCount } = storeToRefs(store)
// 名为 increment 的 action 可以被解构 方法直接解构
const { increment } = store
</script>

Pinia持久化插件

官方文档:https://prazdevs.github.io/pinia-plugin-persistedstate/zh/

  1. 安装插件 pinia-plugin-persistedstate

npm i pinia-plugin-persistedstate
  1. 使用 main.js

import persist from 'pinia-plugin-persistedstate'
...
app.use(createPinia().use(persist))
  1. 配置 store/counter.js

import { defineStore } from 'pinia'
import { computed, ref } from 'vue'

export const useCounterStore = defineStore('counter', () => {
  ...
  return {
    count,
    doubleCount,
    increment
  }
}, {
  persist: true
})

store第三个参数加入配置项

{
  persist: {
    key:'kis2-counter', //修改本地存储的唯一标识
    storage:sessionStorage, //用什么存储
    pick:['count'] //存储那些数据
  }

<br/>

已有 5 条评论

  1. 新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com

  2. 新车即将上线 真正的项目,期待你的参与

  3. 2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
    新车首发,新的一年,只带想赚米的人coinsrore.com
    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
    做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
    新车上路,只带前10个人coinsrore.com
    新盘首开 新盘首开 征召客户!!!coinsrore.com
    新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
    新车即将上线 真正的项目,期待你的参与coinsrore.com
    新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
    新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com

  4. 华纳圣淘沙公司开户新手教程

    零基础学会(183-8890-9465薇-STS5099)
    华纳圣淘沙公司开户

    华纳圣淘沙公司开户保姆级教程(183-8890-9465薇-STS5099)

    一步步教你开通华纳圣淘沙公司账户(183-8890-9465薇-STS5099)

    华纳圣淘沙公司开户分步图解

    首次开户必看:(183-8890-9465薇-STS5099)
    华纳圣淘沙全攻略

    华纳圣淘沙公司开户实操手册(183-8890-9465薇-STS5099)
    华纳圣淘沙开户流程视频教程

    手把手教学:(183-8890-9465薇-STS5099)
    华纳圣淘沙公司开户

    华纳圣淘沙公司开户完全指南(183-8890-9465薇-STS5099)

  5. 华纳圣淘沙公司开户新手教程

    零基础学会(183-8890-9465薇-STS5099)
    华纳圣淘沙公司开户

    华纳圣淘沙公司开户保姆级教程(183-8890-9465薇-STS5099)

    一步步教你开通华纳圣淘沙公司账户(183-8890-9465薇-STS5099)

    华纳圣淘沙公司开户分步图解

    首次开户必看:(183-8890-9465薇-STS5099)
    华纳圣淘沙全攻略

    华纳圣淘沙公司开户实操手册(183-8890-9465薇-STS5099)
    华纳圣淘沙开户流程视频教程

    手把手教学:(183-8890-9465薇-STS5099)
    华纳圣淘沙公司开户

    华纳圣淘沙公司开户完全指南(183-8890-9465薇-STS5099)

发表评论:

陕ICP备2023000669号-1