表单控制、Vue生命周期

表单控制

文本框的绑定需要使用 v-model指令。v-model 指令会根据控件类型自动选择正确的方法来更新元素。在表单中,文本框是最基本的表单控件类型,它分为单行文本框和多行文本框。

\bullet checkbox单选与多选控制

        \circ 单个复选框,就是只有一个复选框,而在使用 v-model 绑定的是一个布尔值。当选中复选框时, v-model 指令绑定的 checked 属性值为 true,否则该属性值为 false

        \circ 多个复选框,就是可以选择多个复选框。如果有多个复选框,应用 v-model 指令绑定的便是一个数组。当选中某个复选框时,该复选框的 value 值会存入数组中。当取消某个复选框时,该复选框的值会从 数组中移除

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
        <h1>checkbox单选框</h1>
        <p>用户名:<input type="text" v-model="name"></p>
        <p>密码:<input type="text" v-model="password"></p>
        <p><input type="checkbox" v-model="isRemenber"></p>
        {{isRemenber}} <!--打印一下值-->
        <h1>checkbox多选框</h1>
        <p>
            爱好:
            <input type="checkbox" value="篮球" v-model="happy"> 篮球
            <input type="checkbox" value="足球" v-model="happy"> 足球
            <input type="checkbox" value="桌球" v-model="happy"> 桌球
        </p>
        {{happy}}<!--打印一下值-->
    </div>
</body>
<script>
    var vm = new Vue({
        el:'#app',
        data:{
            name:'',
            password:'',
            isRemenber:false, //checkbox单选,使用布尔类型
            happy:[],         //checkbox多选,使用数组
        }
    })
</script>
</html>

\bullet radio表单的单选

         存在多个按钮时,只可以选择一个常用于一个人性别的选择。当某个单选按钮被选中时,v-model 指令绑定的属性值会被赋值为该单选按钮的 value 值

!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="./js/vue.js"></script>
</head>
<body>
<div id="app">
    <h1>radio性别单选表单</h1>
    <p>
        <input type="radio" v-model="gender" value="nan"> 男
        <input type="radio" v-model="gender" value="nv"> 女
        <input type="radio" v-model="gender" value="unclear"> 未知
    </p>
    {{gender}}
</div>
</body>
<script>
    new Vue({
        el: '#app',
        data: {
            gender: '',  // radio单选,使用字符串
        },
    })
</script>
</html>

\bullet js中的五种for循环

        - 基于索引的循环

for (var i = 0,i<userList.length; i++) {
    console.log(userList[i])
}

        - 基于迭代的循环

for (i in userList){
    console.log(userList[i])
}

        - ES6语法基于迭代的循环修改了for..in.的缺陷,只遍历属于对象本身的属性值

for (i of userList){
    console.log(i)
}

        - 数组的循环方式

userList.forEach(item =>{
    console.log(item)
}

        - 引入jquery,用jquery来做

$.each(userList,(i,v) => {
    console.log(v)
})

v-model进阶

\bullet lazy:等待input框的数据绑定时区焦点之后再变化

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <h1 class="text-center">lazy的使用</h1>
        <!--当输入框内输入完并失去焦点后触发-->
        <input type="text" v-model.lazy="name"> {{name}}
    </div>
</body>
<script>
    var vm = new Vue({
        el:'#app',
        data:{
            name:'',
        }
    })
</script>
</html>

\bullet number:数字开头只保留数字后面的字母不保留,字母开头则全部保留

<div id="app">
    <h1 class="text-center">lazy的使用</h1>
    <!--当输入框内输入数字开头则只保留数字,字母开头则都保留-->
    <input type="text" v-model.number="name"> {{name}}
</div>

\bullet trim:去除首位的空格,可以用在输入密码等场景

<div id="app">
    <h1 class="text-center">lazy的使用</h1>
    <!--当输入框内首位有空格的时候会自动去掉-->
    <input type="text" v-model.trim="password"> {{password}}
</div>

vue生命周期

生命周期图

钩子函数

- beforeCreate :创建Vue实例之前调用

- created:创建Vue实例成功之后调用

- beforeMount:挂载开始前调用

- mounted:挂载开始之后调用

- beforeUpdate:数据更改DOM重新挂载之前调用

- updated:数据更改DOM重新挂载完之后调用

- beforeDestroy:销毁之前调用

- destroyed:销毁之后调用

ps:组件向后端发送请求获取数据,应该放在created写

<script>
    beforeCreate(){
        console.log('beforeCreate')
    },
    created(){
        console.log('created')
    },
    beforeMount(){
        console.log('beforeMount')
    },
    mounted(){
        console.log('mounted')
    },
    beforeUpdate(){
        console.log('beforeUpdate')
    },
    updated(){
        console.log('updated')
    },
    beforeDestroy(){
        console.log('当前状态:beforeDestroy')
    },
    destroyed(){
        console.log('当前状态:destroyed')
    },

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值