vue 3 APIのsetup、ref、reactiveの使用大全書を組み合わせます。
1.ファーストフードの使用
以下のコード機能を簡単に紹介します。
ref関数を使用して、ある変数の変化を傍受し、ビューにレンダリングします。
setUp関数は、APIを結合するための入り口関数である。これはとても重要です。
setUpは変数の変化をモニターできます。私たちはそれを利用します。
refはvueに内蔵されています。導入が必要です。
2 reactiveの使用を認識する
ref関数は、簡単なタイプのデータの変化をモニターするだけです。
待ち受けはできません。複雑なタイプの変化(配列、オブジェクト)。
だから私たちの主人公reactiveが現れました。
セットの関数は自動的に一回実行されます。
ビューの削除を実現
4削除したロジックを分離する
モジュールを個別に作成
イベント間のパラメータ
私たちは関連するロジックを追加して削除したいです。単独で一つのファイルに分離したいです。
add.jsは関連するロジックを追加するのです。
del.jsは削除に関するロジックです。
以下のコード機能を簡単に紹介します。
ref関数を使用して、ある変数の変化を傍受し、ビューにレンダリングします。
setUp関数は、APIを結合するための入り口関数である。これはとても重要です。
setUpは変数の変化をモニターできます。私たちはそれを利用します。
refはvueに内蔵されています。導入が必要です。
<template>
<div>{{ countNum}}</div>
<button @click="handerFunc"> </button>
</template>
<script>
import {ref} from 'vue'
export default {
name: 'App',
setup() {
// count。 100
let countNum=ref(100);
// API , , methods 。
function handerFunc(){
// console.log(countNum);//countNum
countNum.value += 10;
}
// api , 。 , return {aaa,func}
return { countNum ,handerFunc}
}
}
</script>
2 reactiveの使用を認識する
ref関数は、簡単なタイプのデータの変化をモニターするだけです。
待ち受けはできません。複雑なタイプの変化(配列、オブジェクト)。
だから私たちの主人公reactiveが現れました。
セットの関数は自動的に一回実行されます。
<template>
<div>
<ul>
<li v-for="item in satte.arr" :key="item.id">
{{item.name }}
</li>
</ul>
</div>
</template>
<script>
import {reactive} from 'vue'
export default {
name: 'App',
setup(){
console.log("setUp ")
// ref :
// ref , , ( 、 )
// reactive
let satte=reactive({
arr:[
{name:" ",id:'0011'},
{name:" ",id:'0011'},
{name:" ",id:'0012'},
{name:" ",id:'0013'},
]
})
return { satte }
},
}
</script>
3 reactiveを使うビューの削除を実現
<template>
<div>
<ul>
<li v-for="(item,index) in satte.arr" :key="index" @click="del(index)">
{{item.name }}
</li>
</ul>
</div>
</template>
<script>
import {reactive} from 'vue'
export default {
name: 'App',
setup(){
let satte=reactive({
arr:[
{name:" ",id:'0011'},
{name:" ",id:'0011'},
{name:" ",id:'0012'},
{name:" ",id:'0013'},
]
})
//
function del(index){
for(let i=0;i<satte.arr.length;i++){
if(index==i){
satte.arr.splice(i,1)
}
}
}
return { satte, del}
},
}
</script>
4削除したロジックを分離する
モジュールを個別に作成
<template>
<div>
<ul>
<li v-for="(item,index) in satte.arr" :key="index" @click="del(index)">
{{item.name }}
</li>
</ul>
</div>
</template>
<script>
import {reactive} from 'vue'
export default {
name: 'App',
setup(){
// onlyDelLuoJi() ;
let {satte,del }=onlyDelLuoJi();
//
return { satte,del}
},
}
function onlyDelLuoJi(){
let satte=reactive({
arr:[
{name:" ",id:'0011'},
{name:" ",id:'0011'},
{name:" ",id:'0012'},
{name:" ",id:'0013'},
]
})
//
function del(index){
for(let i=0;i<satte.arr.length;i++){
if(index==i){
satte.arr.splice(i,1)
}
}
}
// satte del
return { satte,del }
}
</script>
5.追加機能の実現イベント間のパラメータ
<template>
<div>
<div>
<input type="text" v-model="addobj.watchTv.name">
<button @click="addHander"> </button>
</div>
<ul>
<li v-for="(item,index) in satte.arr" :key="index" @click="del(index)">
{{item.name }}
</li>
</ul>
</div>
</template>
<script>
import {reactive} from 'vue'
export default {
name: 'App',
setup(){
// onlyDelLuoJi() ;
let {satte,del }=onlyDelLuoJi();
// satte onlyDelLuoJi satte。
let { addobj,addHander }=OnlyaddHander(satte);
//
return { satte,del,addobj, addHander}
},
}
//
function OnlyaddHander(satte){
console.log(' ',satte)
let addobj=reactive({
watchTv:{
name:"",
id:""
}
});
function addHander(){
//
// satte.arr.push(addobj.watchTv)
// addobj.watchTv.name = "";
// addobj.watchTv.id = "";
//
let oldobj = Object.assign({}, addobj.watchTv)
satte.arr.push(oldobj)
}
return { addobj,addHander }
}
//
function onlyDelLuoJi(){
console.log(' ')
let satte=reactive({
arr:[
{name:" ",id:'0011'},
{name:" ",id:'0011'},
{name:" ",id:'0012'},
{name:" ",id:'0013'},
]
})
//
function del(index){
for(let i=0;i<satte.arr.length;i++){
if(index==i){
satte.arr.splice(i,1)
}
}
}
// satte del
return { satte,del }
}
</script>
6彼らを別のファイルに引き出します。私たちは関連するロジックを追加して削除したいです。単独で一つのファイルに分離したいです。
add.jsは関連するロジックを追加するのです。
del.jsは削除に関するロジックです。
import { reactive } from "vue"
function OnlyaddHander(satte){
console.log(' ',satte)
let addobj=reactive({
watchTv:{
name:"",
id:""
}
});
function addHander(e){
//
// satte.arr.push(addobj.watchTv)
// addobj.watchTv.name = "";
// addobj.watchTv.id = "";
//
let oldobj = Object.assign({}, addobj.watchTv)
satte.arr.push(oldobj)
e.preventDefault();
}
return { addobj,addHander }
}
export default OnlyaddHander
adel.js
import {reactive } from "vue"
function onlyDelLuoJi() {
console.log(' ')
let satte=reactive({
arr:[
{name:" ",id:'0011'},
{name:" ",id:'0011'},
{name:" ",id:'0012'},
{name:" ",id:'0013'},
]
})
//
function del(index){
for(let i=0;i<satte.arr.length;i++){
if(index==i){
satte.arr.splice(i,1)
}
}
}
// satte del
return { satte,del }
}
export default onlyDelLuoJi
マスターファイル
<template>
<div>
<div>
<input type="text" v-model="addobj.watchTv.name">
<button @click="addHander"> </button>
</div>
<ul>
<li v-for="(item,index) in satte.arr" :key="index" @click="del(index)">
{{item.name }}
</li>
</ul>
</div>
</template>
<script>
import onlyDelLuoJi from "./components/del"
import OnlyaddHander from "./components/add"
export default {
name: 'App',
setup(){
// onlyDelLuoJi() ;
let {satte,del }=onlyDelLuoJi();
//
let { addobj,addHander }=OnlyaddHander(satte);
//
return { satte,del,addobj, addHander}
},
}
</script>
以上がvue 3グループAPIのsetup、ref、reactiveの使い方の詳細です。vueグループAPIに関する資料は他の関連記事に注目してください。