vue 3 조합 API 에서 setup,ref,reactive 의 사용
아래 의 코드 기능 을 간단하게 소개 합 니 다.
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 가 나 타 났 어 요.
setup 의 함 수 는 자동 으로 실 행 됩 니 다.
<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 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.