VUE---8.表单&选项

一、表单

v-model:value="data数据"   简写   v-model="data数据"

        1. 输入框  

            A: 与输入框内容进行关联, 获取的是内容

            B: 单个属性名   txt:''

            <input type="text" v-model="txt">

        2. 单选框

            A: 需要配合value属性使用, 获取value属性的值

            B: 单个属性名   rad:""

            <input type="radio" v-model="rad" value="男">

       

        3. 单个多选框

            A: 获取多选框的checked属性(布尔值) true选择 false未选择

            B: 单个属性名   che:""

            <input type="checkbox" v-model="che">

        4. 多个多选框

            A: 获取多选框的value属性,获取value属性的值

            B: 一个数组格式  cheArr: []

            <input type="checkbox" v-model="cheArr" value="吃饭">

        5. 下拉框

            A: 获取下拉框的value属性,  没有设置value 使用option的内容作为value值

            B: 单个属性名  sele:""

            C: 设置默认值 v-model="吃饭" 进行设置

        6. 下拉框选择多个

            A: 获取下拉框的value属性,

            B: 一个数组格式  seleArr: []

       

        7. 修饰符

            .lazy      v-model触发方式(oninput事件)改为change触发

          <input type="text" v-model.lazy="txt">

            .number    将输入的内容为数字类型

        <input type="text" v-model.number="txt">

            .trim      清空输入框两侧空格

        <input type="text" v-model.trim="txt">

二、特殊指令

优化性能的

        v-cloak  元素编译完成之后才会显示

        v-pre    元素跳过vue编译

        v-once   元素只会渲染一次,后续不会更新变化

示例(这里示例v-cloak,其他写法一样):

<!DOCTYPE html>
<html lang="en">
<head>   
    <title>Document</title>
    <style>
        [v-cloak]{
            display: none;
        }
    </style>
</head>

<body>
    <div id="app" >
        <p v-once>{{userInfo.txt}}</p>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.7.8/dist/vue.js"></script>
    <script>
        let vm = new Vue({
            el: "#app",
            data: {
                userInfo: {
                    txt: "pxr",
                    pass: "",
                    rad: "",
                    cheArr: [],
                }
            },


        })
    </script>
</body>

</html>

 三、选项---computed计算属性

(一)认识computed计算属性

选项 el  data  methods  computed计算属性

        computed计算属性

            1. 在其中设置属性名用于在模版中使用,属性值是回调函数

            2. 回调函数的返回值(return)会展示到模板中

            3. 回调函数的this是 vue实例

<div id="app">

        {{getArr}}

    </div>

let vm = new Vue({

            el: "#app",

            data() {

                return {

                    arr: [1, 2, 4, 5, 6]

                }

            },

            // 计算属性

            computed: {

                getArr() {

                    return this.arr.join().substr(1, 5).split(",").reduce((pre, next) => {

                        return pre + next

                    })

                }

            }

        })

        补充

            1. 插值符中表达式,建议你写简单的表代式, 不要复杂的表达式,不利于维护

            2. 插值符中表达式复杂的逻辑代码(表达式)放在computed里面

(二)深入理解computed计算属性

computed计算属性

        1. 理解计算属性

            A: 拿着data已写好的属性数据,进行加工处理(计算), 不要在模板上写复杂的表达式

        2. 深入计算属性

            A: 页面(vue模板)中获取了对应的computed数据,对应函数会执行

            B: get函数,页面(模板)获取时对应的get会执行

            C: set函数,对应set函数的属性进行赋值触发函数,一般用于修改get函数中的数据

            D: get函数中依赖的属性(data属性)发生变化的,get函数会重新触发

            E: 简写也会触发

 <div id="app">

        {{getArr}}-{{getNum}}

    </div>

let vm = new Vue({

            el: "#app",

            data() {

                return {

                    arr: [1, 2, 4, 5, 6],

                    num: 100,

                }

            },

            // 计算属性

            computed: {

                // 简写

                getArr() {

                    return this.arr.join().substr(1, 5).split(",").reduce((pre, next) => {

                        return pre + next

                    })

                },

                // 深度写法

                getNum:{

                    // 模板获取getNum数据是触发

                    get(){

                        return this.num + 100

                    },

                    // 设置getNum触发set函数  set函数很少用

                    set(value){

                        this.num = value

                    }

                }

            }

        })

 (三)computed与methods区别

        1. cimputed直接使用,methods方法需要执行

        2. computed计算属性具有缓存机制,每次获取,数据未发生变化,取缓存的数据, 发生变化会重新计算

        3. methods方法每次都会执行来获取数据

        4. 工具可以直接看到 computed的数据

补充

            vue页面(模板)数据发生变化,会重新渲染页面

<div id="app">

        <p>计算属性: {{getArr}}</p>

        <p>方法:  {{meArr()}}</p>

        <p>定义值:{{num}}</p>

    </div>

let vm = new Vue({

            el: "#app",

            data() {

                return {

                    arr: [1, 2, 4, 5, 6],

                    num: 100,

                }

            },

            // 计算属性

            computed: {

                // data数据发生变化重新计算

                getArr() {

                    console.log("计算属性");

                    return this.arr.join().substr(1).split(",").reduce((pre, next) => {

                        return pre + next

                    })

                },

            },

            methods:{

                // 页面数据发生变化,重新执行函数,获取数据

                meArr(){

                    console.log("方法");

                    return this.arr.join().substr(1).split(",").reduce((pre, next) => {

                        return pre + next

                    })

                }

            }

        })

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值