• Vue3表单输入绑定&生命周期


    官网:https://cn.vuejs.org/guide/essentials/forms.html#checkbox

    复选框

    在这个例子中,checkedNames 数组将始终包含所有当前被选中的框的值。

    const checkedNames = ref([])
    
    <div>Checked names: {{ checkedNames }}</div>
    
    <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
    <label for="jack">Jack</label>
    
    <input type="checkbox" id="john" value="John" v-model="checkedNames">
    <label for="john">John</label>
    
    <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
    <label for="mike">Mike</label>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    选择器

    <div>Selected: {{ selected }}div>
    
    <select v-model="selected">
      <option disabled value="">Please select oneoption>
      <option>Aoption>
      <option>Boption>
      <option>Coption>
    select>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    注意: 如果 v-model 表达式的初始值不匹配任何一个选择项, 元素触发 input 事件时将值的首字母大写:

    <script setup>
    const props = defineProps({
      modelValue: String,
      modelModifiers: { default: () => ({}) }
    })
    
    const emit = defineEmits(['update:modelValue'])
    
    function emitValue(e) {
      let value = e.target.value
      if (props.modelModifiers.capitalize) {
        value = value.charAt(0).toUpperCase() + value.slice(1)
      }
      emit('update:modelValue', value)
    }
    script>
    
    <template>
      <input type="text" :value="modelValue" @input="emitValue" />
    template>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    对于又有参数又有修饰符的 v-model 绑定,生成的 prop 名将是 arg + "Modifiers"。举例来说:

    <MyComponent v-model:title.capitalize="myText">
    
    • 1

    相应的声明应该是:

    const props = defineProps(['title', 'titleModifiers'])
    defineEmits(['update:title'])
    
    console.log(props.titleModifiers) // { capitalize: true }
    
    • 1
    • 2
    • 3
    • 4

    生命周期

    API: https://cn.vuejs.org/api/composition-api-lifecycle.html#onupdated

    <script setup>
    import { onMounted } from 'vue'
    
    onMounted(() => {
      console.log(`the component is now mounted.`)
    })
    </script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

  • 相关阅读:
    VS2013+Qt交互,安装详情
    【牛客-剑指offer-数据结构篇】【图解】JZ27 二叉树的镜像 Java实现
    Redis的RDB持久化
    [激光原理与应用-19]:《激光原理与技术》-5- 激光器的增益、损耗、自激振荡条件
    含文档+PPT+源码等]精品基于PHP实现的实验室安全系统设计与实现[包运行成功]计算机PHP毕业设计项目源码
    Selenium4之CDP
    MySQL 存储引擎
    【Docker】了解Docker Desktop桌面应用程序,TA是如何管理和运行Docker容器(3)
    深拷贝与浅拷贝(对象的引用)
    WebGIS----前端(二)
  • 原文地址:https://blog.csdn.net/weixin_43960767/article/details/128135851