尚未解决${data.userName}抓数据失败的原因
<template>
<div class="about">
<h1>This is an about page</h1>
</div>
<h2>vue3的生命周期</h2>
<div id="dom">{{msg}}--{{num}}</div>
<!-- 事件及方法直接生成在setup -->
<button v-on:click="click">点击我111</button>
<hr>
<!-- v-model:双向绑定 -->
<!-- input:输入事件
blur:失去焦点
focus获取焦点
change内容更改
-->
<input type="text" placeholder="请输入姓名" v-model="userName"><br />
<input type="text" placeholder="请输入电话" v-model="userPhone"
@focus="handleFocus"
@blur="handleBlur"
@input="handleInput"
><br />
<textarea placeholder="请输入您的建议" cols="30" rows="10" v-model="userInput"></textarea>
<p>{{userName}}--{{userInput}}--{{userPhone}}</p>
<button @click="ssubmit">提交</button>
</template>
<script>
import { reactive, toRefs, onBeforeMount,onMounted,onBeforeUpdate,onUpdated} from "vue"
export default {
name:"about",
setup() {
const data=reactive({
msg:"nihao",
msg2:"hello world",
num:0,
userName:"",
userInput:"",
userPhone:""
})
//渲染之前
onBeforeMount(()=>{
console.log("onBeforeMount",document.querySelector("#dom"))
})
//渲染之后
onMounted(()=>{
console.log("onMounted",document.querySelector("#dom"))
//定时器
setTimeout(()=>{
data.msg="hello"
},2000)
})
onBeforeUpdate(()=>{
console.log("onBeforeUpdate")
})
// dom更新之前
onUpdated(()=>{
console.log("onUpdated")
//data.num+=1
//一般不会写数据改变
})
const click=()=>{
alert("点击了")
}
const ssubmit=()=>{
alert('${data.userName}')
}
const handleFocus=()=>{
console.log('获取焦点')
}
const handleBlur=()=>{
console.log('失去焦点')
if(!data.userPhone){
alert("手机号必填")
}
}
const handleInput=()=>{
//正则验证手机号
if(!/^[1][3,4,5,7,8][0-9]{9}$/.test(data.userPhone)){
console.log('不符合手机号')
}
}
return {
...toRefs(data),
click,
ssubmit,
handleFocus,
handleBlur,
handleInput
}
}
}
</script>