vue3.0 組合API用法

引入依賴 reactive

import {reactive} from 'vue'

html 頁面效果

image.png

html 頁面

<template>
  <div class="c000">
      {{num.num}}
      <button class="c000" @click="addNumber">
      累加
    </button>
  </div>
  <div>
    <input v-model="state2.item.a" type="text">
    <input v-model="state2.item.b" type="text">
    <button @click="addFun">add</button>
  </div>
  <ul v-for="(item,i) in state.stus" :key="i" @click="delet(i)">
    <li>{{item.a}}=={{item.b}}</li>
  </ul>
</template>
<script>
import {removeData,addData,addNum} from './handerFun'
export default {
  name: 'Home',
  components: {  
  },
  setup(){
    let {state,delet} = removeData()
    let {state2,addFun} = addData(state);
    let {num,addNumber}  =  addNum()
    return {state,delet,state2,addFun,addNumber,num}
  }
}
</script>
<style lang="scss">
.c000{
  color:#000;
  font-size: 30px;
}
</style>

處理業(yè)務(wù)邏輯方法js

import {reactive} from 'vue'
function removeData(){
  let state = reactive({
        stus:[{
          a:1,b:2
        },
        {
          a:5,
          b:9
        }]
      })
  function delet(i){
    state.stus = state.stus.filter((ele,index)=> index !=i)
  }
  return {state,delet}
}

function addData(state){
  let state2= reactive({
    item:{
      a:'',
      b:''
    }
  })
  function addFun(e){
    e.preventDefault();
    let item = Object.assign({},state2.item);
    state2.item.a = '';
    state2.item.b = '';
    state.stus.push(item)
  }
  return{state2,addFun}
}

function addNum(){
  let num = reactive({
    num:0
  })
  function addNumber(){
      num.num++
  }
  return {num,addNumber}
}
export  {removeData,addData,addNum}





參考地址

獲取 demo 地址

https://e.coding.net/Allen68798/vue3.0-demo/vue3.0_demo.git

vue3.0 官方文檔

https://v3.vuejs.org/guide/introduction.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容