成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Vue3.2中setup語法糖的使用教程分享

瀏覽:48日期:2022-06-10 11:34:07
目錄
  • 1、如何使用setup語法糖
  • 2、data數據的使用
  • 3、method方法的使用
  • 4、watchEffect的使用
  • 5、watch的使用
  • 6、computed計算屬性的使用
  • 7 、props父子傳值的使用
  • 8 、emit子父傳值的使用
  • 9、獲取子組件ref變量和defineExpose暴露
  • 10、路由useRoute和us eRouter的使用
  • 11、store倉庫的使用
  • 12、await的支持
  • 13、provide 和 inject 祖孫傳值

提示:vue3.2 版本開始才能使用語法糖!

在 Vue3.0 中變量必須  return  出來, template 中才能使用;而在 Vue3.2 中只需要在  script  標簽上加上  setup  屬性,無需  return , template  便可直接使用,非常的香啊!

提示:以下是本篇文章正文內容,下面案例可供參考

1、如何使用setup語法糖

只需在  script  標簽上寫上 setup 代碼如下(示例):

<template>
</template>
<script setup>
</script>
<style scoped lang="less">
</style>

2、data數據的使用

由于  setup  不需寫  return ,所以直接聲明數據即可 代碼如下(示例):

<script setup>
    import {
      ref,
reactive,
      toRefs,
    } from "vue"
    const data = reactive({
      patternVisible: false,
      debugVisible: false,
      aboutExeVisible: false,
    })
    const content = ref("content")
    //使用toRefs解構
    const { patternVisible, debugVisible, aboutExeVisible } = toRefs(data)
</script>

3、method方法的使用

代碼如下(示例):

<template >
    <button @click="onClickHelp">系統幫助</button>
</template>
<script setup>
import {reactive} from "vue"
const data = reactive({
      aboutExeVisible: false,
})
// 點擊幫助
const onClickHelp = () => {
    console.log(`系統幫助`)
    data.aboutExeVisible = true
}
</script>

4、watchEffect的使用

代碼如下(示例):

<script setup>
import {
  ref,
  watchEffect,
} from "vue"
let sum = ref(0)
watchEffect(()=>{
  const x1 = sum.value
  console.log("watchEffect所指定的回調執行了")
})
</script>

5、watch的使用

代碼如下(示例):

<script setup>
    import {
      reactive,
      watch,
    } from "vue"
     //數據
     let sum = ref(0)
     let msg = ref("你好啊")
     let person = reactive({
    name:"張三",
    age:18,
    job:{
      j1:{
salary:20
      }
    }
  })
    // 兩種監聽格式
    watch([sum,msg],(newValue,oldValue)=>{
    console.log("sum或msg變了",newValue,oldValue)
  },{immediate:true})
     watch(()=>person.job,(newValue,oldValue)=>{
console.log("person的job變化了",newValue,oldValue)
     },{deep:true}) 
</script>

6、computed計算屬性的使用

computed 計算屬性有兩種寫法(簡寫和考慮讀寫的完整寫法) 代碼如下(示例):

<script setup>
    import {
      reactive,
      computed,
    } from "vue"
    //數據
    let person = reactive({
       firstName:"小",
       lastName:"叮當"
     })
    // 計算屬性簡寫
    person.fullName = computed(()=>{
return person.firstName + "-" + person.lastName
      }) 
    // 完整寫法
    person.fullName = computed({
      get(){
return person.firstName + "-" + person.lastName
      },
      set(value){
const nameArr = value.split("-")
person.firstName = nameArr[0]
person.lastName = nameArr[1]
      }
    })
</script>

7 、props父子傳值的使用

子組件代碼如下(示例):

<template>
  <span>{{props.name}}</span>
</template>
<script setup>
  import { defineProps } from "vue"
  // 聲明props
  const props = defineProps({
    name: {
      type: String,
      default: "11"
    }
  })  
  // 或者
  //const props = defineProps(["name"])
</script>

父組件代碼如下(示例):

<template>
  <child :name="name"/>  
</template>
<script setup>
    import {ref} from "vue"
    // 引入子組件
    import child from "./child.vue"
    let name= ref("小叮當")
</script>

8 、emit子父傳值的使用

子組件代碼如下(示例):

<template>
   <a-button @click="isOk">
     確定
   </a-button>
</template>
<script setup>
import { defineEmits } from "vue";
// emit
const emit = defineEmits(["aboutExeVisible"])
/**
 * 方法
 */
// 點擊確定按鈕
const isOk = () => {
  emit("aboutExeVisible");
}
</script>

父組件代碼如下(示例):

<template>
  <AdoutExe @aboutExeVisible="aboutExeHandleCancel" />
</template>
<script setup>
import {reactive} from "vue"
// 導入子組件
import AdoutExe from "../components/AdoutExeCom"
const data = reactive({
  aboutExeVisible: false, 
})
// content組件ref
// 關于系統隱藏
const aboutExeHandleCancel = () => {
  data.aboutExeVisible = false
}
</script>

9、獲取子組件ref變量和defineExpose暴露

即 vue2 中的獲取子組件的 ref ,直接在父組件中控制子組件方法和變量的方法

子組件代碼如下(示例):

<template>
    <p>{{data }}</p>
</template>
<script setup>
import {
  reactive,
  toRefs
} from "vue"
/**
 * 數據部分
 * */
const data = reactive({
  modelVisible: false,
  historyVisible: false, 
  reportVisible: false, 
})
defineExpose({
  ...toRefs(data),
})
</script>

父組件代碼如下(示例):

<template>
    <button @click="onClickSetUp">點擊</button>
    <Content ref="content" />
</template>
<script setup>
import {ref} from "vue"
// content組件ref
const content = ref("content")
// 點擊設置
const onClickSetUp = ({ key }) => {
   content.value.modelVisible = true
}
</script>
<style scoped lang="less">
</style>

10、路由useRoute和us eRouter的使用

代碼如下(示例):

<script setup>
  import { useRoute, useRouter } from "vue-router"
  // 聲明
  const route = useRoute()
  const router = useRouter()
  // 獲取query
  console.log(route.query)
  // 獲取params
  console.log(route.params)
  // 路由跳轉
  router.push({
      path: `/index`
  })
</script>

11、store倉庫的使用

代碼如下(示例):

<script setup>
  import { useStore } from "vuex"
  import { num } from "../store/index"
  const store = useStore(num)
  // 獲取Vuex的state
  console.log(store.state.number)
  // 獲取Vuex的getters
  console.log(store.state.getNumber)
  // 提交mutations
  store.commit("fnName")
  // 分發actions的方法
  store.dispatch("fnName")
</script>

12、await的支持

setup  語法糖中可直接使用  await ,不需要寫  async  ,  setup  會自動變成  async setup

代碼如下(示例):

<script setup>
  import api from "../api/Api"
  const data = await Api.getData()
  console.log(data)
</script>

13、provide 和 inject 祖孫傳值

父組件代碼如下(示例)

<template>
  <AdoutExe />
</template>
 
<script setup>
  import { ref,provide } from "vue"
  import AdoutExe from "@/components/AdoutExeCom"
 
  let name = ref("Jerry")
  // 使用provide
  provide("provideState", {
    name,
    changeName: () => {
      name.value = "小叮當"
    }
  })
</script>
子組件代碼如下(示例):
<script setup>
  import { inject } from "vue"
  const provideState = inject("provideState")
 
  provideState.changeName()
</script>

以上就是Vue3.2中setup語法糖的使用教程分享的詳細內容,更多關于Vue setup語法糖的資料請關注其它相關文章!

標簽: JavaScript
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
色先锋aa成人| 欧美黄色一区| 99av国产精品欲麻豆| 欧美激情综合五月色丁香小说| 成人高清视频免费观看| 91豆麻精品91久久久久久| 一区二区三区精品久久久| 一区二区亚洲| 中文字幕一区二区三区四区不卡 | 欧美日韩在线不卡一区| 久久久精品国产免大香伊| 99久久er热在这里只有精品15| 亚洲精品一区二区精华| 成人免费毛片a| 久久久亚洲精品石原莉奈| 91社区在线播放| 国产三级欧美三级| 欧美精品色网| 亚洲色图色小说| 国产一区二区三区的电影 | 亚洲欧美福利一区二区| 亚洲欧洲一区二区在线观看| 亚洲精品ww久久久久久p站 | 国产日韩综合av| 国产精品大片| 亚洲特色特黄| 欧美激情一二三区| 黑丝一区二区三区| 亚洲精选在线视频| 久久久久网址| 精品在线观看免费| 欧美久久久久久久久中文字幕| 国产裸体歌舞团一区二区| 欧美精品乱码久久久久久按摩 | 久久综合久久鬼色中文字| 91蜜桃在线免费视频| 国产精品久线在线观看| 亚洲精品乱码| 一区二区三区.www| 色噜噜狠狠成人网p站| 国产一区999| 久久人人97超碰com| 亚洲国产精品视频一区| 亚洲成人免费在线| 欧美写真视频网站| 国产69精品久久99不卡| 久久久久久久精| 亚洲国产高清视频| 亚洲电影第三页| 欧美日韩日日夜夜| 成人av手机在线观看| 国产精品美女久久久久久久久久久| 亚洲国产国产亚洲一二三| 亚洲高清在线视频| 欧美日韩高清一区二区三区| 一区二区三区欧美激情| 老司机精品视频网站| 国产河南妇女毛片精品久久久| 欧美精品一区二区久久婷婷| 日韩视频中文| 蜜桃久久精品一区二区| 欧美大片一区二区| 亚洲国产精品一区| 另类欧美日韩国产在线| 久久综合九色综合97_久久久| 亚洲夜间福利| 免费人成在线不卡| 精品国产乱码久久久久久蜜臀| 亚洲视频高清| 久久99久久99精品免视看婷婷| 久久久亚洲精品一区二区三区 | 日韩美女久久久| 日本丶国产丶欧美色综合| 国产91丝袜在线播放九色| 国产精品视频在线看| 久久综合久久久| 国产99精品在线观看| 亚洲欧美综合网| 欧美色成人综合| 午夜国产精品视频| 午夜精品aaa| 精品国产免费人成电影在线观看四季| 亚洲精品乱码久久久久久蜜桃91| 国产一区啦啦啦在线观看| 国产精品嫩草影院com| 91官网在线观看| 99国产精品视频免费观看| 亚洲无人区一区| 日韩精品一区二区三区四区视频| 99re6热在线精品视频播放速度| 国产精品伊人色| 亚洲精品日日夜夜| 日韩欧美一级二级| 亚洲尤物在线| 成人v精品蜜桃久久一区| 亚洲一区二区三区四区五区黄| 日韩精品一区二区三区视频播放 | 综合分类小说区另类春色亚洲小说欧美| 在线观看亚洲一区| 欧美精品一区二区视频| 美脚の诱脚舐め脚责91| 国产精品视频在线看| 欧美精品乱码久久久久久按摩| 亚洲国产精品www| 波多野结衣精品在线| 日韩精品一区第一页| 国产精品素人一区二区| 69p69国产精品| 亚洲一区二区伦理| 91蜜桃婷婷狠狠久久综合9色| 日韩二区在线观看| 国产精品二三区| 日韩一级片网站| 久久婷婷久久| 亚洲大胆av| 91啪九色porn原创视频在线观看| 美女网站色91| 亚洲福中文字幕伊人影院| 欧美激情一区二区三区在线| 欧美日韩免费观看一区二区三区| 在线欧美视频| 国产不卡视频在线观看| 婷婷成人综合网| 综合在线观看色| 久久亚洲精精品中文字幕早川悠里 | 97久久精品人人做人人爽50路| 蜜臀av在线播放一区二区三区| 亚洲天堂精品视频| 2020国产精品| 欧美精品aⅴ在线视频| 国产欧美日韩| 欧美日韩在线播放一区二区| 国产成人精品一区二| 日本欧美久久久久免费播放网| 亚洲欧美一区二区三区极速播放| 日韩三级免费观看| 欧美视频一区二区三区| 性一交一乱一区二区洋洋av| 亚洲国产精选| 99久久99久久综合| 视频在线观看国产精品| 久久riav二区三区| 91精品国产91久久久久久最新毛片 | 久久精品国产99| 亚洲午夜精品网| 亚洲视频一二三区| 国产欧美一区二区精品久导航 | 亚洲欧美偷拍三级| 国产亚洲精品免费| 精品久久久久av影院 | 精品99一区二区三区| 欧美丝袜自拍制服另类| 欧美一区=区| 亚洲欧美日韩精品在线| 亚洲国产免费看| 欧美午夜精品久久久久免费视| 一区久久精品| 在线观看亚洲| 好看的亚洲午夜视频在线| 99久久精品免费精品国产| 成人综合日日夜夜| 色爱区综合激月婷婷| 久久天堂精品| 久久国产精品亚洲va麻豆| 国产精品免费一区二区三区在线观看| 一区精品久久| 在线观看不卡| 一区免费视频| 在线看片一区| 尤物网精品视频| 国内精品久久久久久久果冻传媒| 91丨九色丨蝌蚪丨老版| 99久久久久久| 97久久精品人人澡人人爽| 成年人午夜久久久| 成人免费av网站| av在线不卡免费看| 99免费精品视频| 91香蕉国产在线观看软件| 91麻豆免费观看| 欧美日韩大片一区二区三区| 欧美在线国产| 亚洲欧美亚洲| 影音先锋久久资源网| 日韩视频一区二区三区在线播放免费观看 | 亚洲一区二区三区影院| 亚洲一区二区综合| 亚洲成人中文在线| 五月婷婷综合激情| 日本午夜精品视频在线观看| 国产网红主播福利一区二区| 国产精品免费视频一区| 亚洲人一二三区| 亚洲精品成人a在线观看| 亚洲综合区在线| 日韩在线一二三区| 韩国av一区二区| 不卡的av网站| 欧美精品网站| 亚洲深夜激情|