日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:83日期:2022-06-10 11:34:07
目錄
  • 1、如何使用setup語法糖
  • 2、data數(shù)據(jù)的使用
  • 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  便可直接使用,非常的香啊!

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

1、如何使用setup語法糖

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

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

2、data數(shù)據(jù)的使用

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

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

3、method方法的使用

代碼如下(示例):

<template >
    <button @click="onClickHelp">系統(tǒng)幫助</button>
</template>
<script setup>
import {reactive} from "vue"
const data = reactive({
      aboutExeVisible: false,
})
// 點擊幫助
const onClickHelp = () => {
    console.log(`系統(tǒng)幫助`)
    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所指定的回調(diào)執(zhí)行了")
})
</script>

5、watch的使用

代碼如下(示例):

<script setup>
    import {
      reactive,
      watch,
    } from "vue"
     //數(shù)據(jù)
     let sum = ref(0)
     let msg = ref("你好啊")
     let person = reactive({
    name:"張三",
    age:18,
    job:{
      j1:{
salary:20
      }
    }
  })
    // 兩種監(jiān)聽格式
    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"
    //數(shù)據(jù)
    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
// 關(guān)于系統(tǒng)隱藏
const aboutExeHandleCancel = () => {
  data.aboutExeVisible = false
}
</script>

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

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

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

<template>
    <p>{{data }}</p>
</template>
<script setup>
import {
  reactive,
  toRefs
} from "vue"
/**
 * 數(shù)據(jù)部分
 * */
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)
  // 路由跳轉(zhuǎn)
  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")
  // 分發(fā)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語法糖的使用教程分享的詳細內(nèi)容,更多關(guān)于Vue setup語法糖的資料請關(guān)注其它相關(guān)文章!

標簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
成人精品高清在线视频| 黄在线观看免费网站ktv| 欧美粗暴jizz性欧美20| 国产欧美一区二区三区精品酒店| 久久亚洲人体| 国产激情精品一区二区三区| 国产精品igao视频网网址不卡日韩| 欧美在线精品一区| 国产精品免费精品自在线观看| 国产激情精品一区二区三区| 久久99精品久久久野外观看| 精品免费在线| 久久天堂av| 色爱综合av| 国产一区亚洲| 亚洲一区二区三区无吗| 日本在线不卡视频| 国产精品一在线观看| 久久精品国产一区二区| 亚洲一区资源| 欧美69视频| 综合国产精品| 日韩欧美高清一区二区三区| 国产精品一级| 97精品一区| 久久蜜桃av| 中文字幕亚洲影视| 国产日韩一区二区三区在线播放| 国产精品美女午夜爽爽| 国产一区精品福利| 亚洲国产专区| 亚洲精品精选| 日本欧美国产| 石原莉奈在线亚洲二区| 国产亚洲一区二区三区不卡| 国产一区2区在线观看| 欧美特黄一级大片| 亚欧成人精品| 欧美好骚综合网| 99视频一区| 久久国内精品视频| 国产91欧美| 免费在线观看不卡| 国产毛片久久久| 性感美女一区二区在线观看| 久久国产88| 精品亚洲精品| 午夜在线视频一区二区区别 | 国产一区二区色噜噜| 亚洲第一区色| 国产精品亚洲欧美一级在线| 日韩av免费| 日韩一区二区三区高清在线观看| 精品福利久久久| 视频精品一区二区| 久久精品国产网站| 中文久久精品| 久久av免费看| 国产亚洲综合精品| 久久福利在线| 国产午夜久久| 久久久人人人| 日韩二区在线观看| 超级白嫩亚洲国产第一| 欧美亚洲tv| 1024精品久久久久久久久| 久久国内精品自在自线400部| 亚洲男人在线| 久久久精品久久久久久96 | av高清一区| 蜜臀av在线播放一区二区三区| 日本不卡中文字幕| 天堂精品久久久久| 欧洲激情综合| 奶水喷射视频一区| 中文精品视频| 亚洲欧美网站在线观看| 视频一区免费在线观看| 欧美91福利在线观看| 免费看av不卡| 日韩精品五月天| 91精品国产91久久久久久黑人| 在线免费观看亚洲| 日韩av首页| 国产一区二区三区黄网站| 视频国产精品| 日韩一区中文| 蜜桃av一区二区| 精品视频一区二区三区四区五区 | 日韩精品一区第一页| 欧美.日韩.国产.一区.二区| 日韩中文视频| 久久国产成人午夜av影院宅| 国产麻豆久久| 国产真实久久| 午夜电影亚洲| 亚洲在线一区| 91成人精品| 久久亚洲欧美| 亚洲伊人精品酒店| 日本精品国产| 国产精品一站二站| 精品淫伦v久久水蜜桃| 国产极品嫩模在线观看91精品| 欧美精品aa| 美女久久久久久| 国产精品yjizz视频网| 欧美日韩在线观看首页| av亚洲一区二区三区| 欧美不卡在线| 日韩中文欧美在线| 欧美亚洲免费| 久久av网址| 日韩在线高清| 91久久久精品国产| 三级欧美韩日大片在线看| 另类av一区二区| 日韩国产一区二| 欧美精品aa| 香蕉成人av| 国产亚洲在线观看| 日韩久久一区| 五月激激激综合网色播| 在线观看亚洲精品福利片| 四虎精品永久免费| 国产日产精品一区二区三区四区的观看方式 | 一本一本久久| 蜜桃久久av| 色综合视频一区二区三区日韩 | 香蕉国产精品| 爽爽淫人综合网网站| 午夜在线观看免费一区| 国产一区二区三区不卡视频网站 | 亚洲精品一区二区在线看| 午夜日本精品| 欧美日韩三区| 国产精品流白浆在线观看| 精品久久91| 精品一区二区三区中文字幕视频 | 日本午夜精品久久久| 一区二区三区网站| 三级欧美在线一区| 日韩高清国产一区在线| se01亚洲视频| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲欧美视频| 中文字幕人成乱码在线观看| 视频一区中文字幕精品| 日韩精品乱码av一区二区| 欧美特黄一区| 欧美精品国产白浆久久久久| 99久久精品国产亚洲精品| 精品国产第一福利网站| 久久国产精品亚洲77777| 婷婷亚洲综合| 天堂а√在线最新版中文在线| 久久精品官网| 精品国产亚洲一区二区在线观看| 国产网站在线| 在线精品视频一区| 欧美中文一区二区| 久久精品青草| 日本视频在线一区| 欧美不卡在线| 精品网站999| 国产一卡不卡| 亚洲乱码一区| av不卡免费看| 精品不卡一区| 精品亚洲二区| 欧美日韩99| 91精品一区国产高清在线gif| 亚洲二区视频| 久久激五月天综合精品| 国产精品九九| 日韩av中文字幕一区| 国产精选一区| 亚洲不卡系列| 国产成人1区| 在线午夜精品| 国产aa精品| 亚洲精品第一| 成人精品亚洲| 日本综合字幕| 国产日韩三级| 日韩综合一区二区三区| 在线看片福利| 亚洲精品一区二区在线看| 日韩av一区二区三区| 色偷偷偷在线视频播放| 精品日韩毛片| 国产精品99久久久久久董美香| 亚洲午夜av| 久久精品97| 亚洲激情不卡| 国际精品欧美精品| 日韩精品视频在线看| 婷婷成人在线| 美女在线视频一区| 三级亚洲高清视频|