当前位置: 首页 > article >正文

安装Element-Plus与v-model在vue3组件中的使用

安装Element-Plus

1.安装Element-Plus

# 选择一个你喜欢的包管理器

# NPM
npm install element-plus --save

# Yarn
yarn add element-plus

# pnpm
pnpm install element-plus

2.main.ts中导入

import { createApp } from 'vue'
import { createPinia } from 'pinia'

import App from './App.vue'
import router from './router'

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

const app = createApp(App)

app.use(createPinia())
app.use(router)
app.use(ElementPlus)

app.mount('#app')

  在 tsconfig.json 中

// tsconfig.json
{
  "compilerOptions": {
    // ...
    "types": ["element-plus/global"]
  }
}

 

v-model在vue3组件中的使用

1.v-model在输入框中的使用

 <div style="padding: 20px;background-color: gray;">
    <!-- 1. v-model在输入框中的使用 -->
    <!-- 等价于 :value + @input -->
    <!-- <input type="text" v-model="phone"> -->
    <input type="text" :value="phone" @input="dealInput">
  </div>

2.v-model在单选和多选标签上

 <!-- 2.v-model在单选和多选标签上 等价于 :checked + @change -->
  <div style="padding: 20px;background-color: gray; margin-top: 20px;">
    <span>性别:</span>
    <!-- 
    <input v-model="gender" name="gender" value="男" type="radio">男
    <input v-model="gender" name="gender" value="女" type="radio">女 
    -->
    <input name="gender" value="男" :checked="gender === '男'" type="radio" @change="changeGender">男
    <input name="gender" value="女" :checked="gender === '女'" type="radio" @change="changeGender">女
  </div>

 <!-- 3. v-model在多选标签上 等价于 :checked + @change -->
  <div style="padding: 20px;background-color: gray; margin-top: 20px;">
    <span>爱好:</span>
    <input v-model="hobbies" name="hobby" type="checkbox" value="看书">看书
    <input v-model="hobbies" name="hobby" type="checkbox" value="打球">打球
    <input v-model="hobbies" name="hobby" type="checkbox" value="爬山">爬山
    <div>用户的爱好是: {{ hobbies }}</div>
  </div>

3. v-model在下拉框中选择

<!-- 4. v-model在下拉框中选择 -->
  <div style="padding: 20px;background-color: gray; margin-top: 20px;">
    <span>选择喜欢的城市:</span>
    <select name="city" v-model="city">
      <option value="北京">北京</option>
      <option value="南京">南京</option>
      <option value="东京">东京</option>
      <option value="上京">上京</option>
    </select>
    <div>用户喜欢的城市是: {{ city }}</div>
  </div>

4. v-model在自定义组件上的使用

父组件:

<script setup lang="ts">
import ChildOne from '@/components/ChildOne.vue';
import { ref } from 'vue';

const money = ref(100);
const car = ref('自行车');

</script>

<template>
  <div class="father">

    父组件-钱包:{{ money }}
    车辆:{{ car }}
    <!-- <ChildOne :model-value="money" @update:modelValue="money += $event" /> -->
    <ChildOne v-model="money" v-model:car="car" />

  </div>

</template>

<style scoped>
.father {
  width: 600px;
  height: 600px;
  background-color: orange;
}
</style>

子组件:

<script setup lang="ts">

defineProps<{
  modelValue: number,
  car: string
}>()

const emits = defineEmits<{
  (e: 'update:modelValue', money: number): void,
  (e: 'update:car', car: string): void
}>()

</script>

<template>
  <div class="child-one">
    <div>子组件</div>
    <p> 钱包: {{ modelValue }} </p>
    <button @click="emits('update:modelValue', modelValue + 100)">搬砖一个月</button>
    <button @click="emits('update:car', 'su7')">换车</button>

  </div>
</template>

<style scoped>
.child-one {
  width: 200px;
  height: 200px;
  background-color: pink;
}
</style>


http://www.kler.cn/a/381466.html

相关文章:

  • Kafka 之顺序消息
  • 【Rust中的迭代器】
  • ComfyUI和Photoshop相结合,PS内实现:文生图,图生图,高清放大,局部重绘,面部修复,设计师福音
  • 特殊矩阵的压缩存储
  • [vulnhub]DC: 1
  • 机器学习:我们能用机器学习来建立投资模型吗
  • TikTok Spark Ads火花广告创建及相关要点
  • Git (推送到远端仓库)
  • [Unity Demo]从零开始制作空洞骑士Hollow Knight第十九集:制作过场Cutscene系统
  • Java 实训第11天 枚举
  • 北京交通大学机器学习实验
  • winform 加载 office excel 插入QRCode图片如何设定位置
  • selenium操作已开启的浏览器,方便调试
  • Python数据分析NumPy和pandas(二十四、数据整理--连接、合并和重塑 之一:分层索引)
  • 51单片机教程(八)- 数码管的静态显示
  • 云轴科技ZStack 联合 OpenCloudOS 完成技术兼容互认证
  • 目标检测YOLO实战应用案例100讲-基于深度学习的人眼视线检测
  • 【云原生开发】如何通过client-go来操作K8S集群
  • 排序算法详细总结
  • 导师双选系统开发新解:Spring Boot技术
  • 练手之基于python的新闻爬虫
  • github.com port 22
  • 基于TRIZ理论的便携式光伏手机充电装置创新
  • 《Linux系统编程篇》消息队列(Linux 进程间通信(IPC))——基础篇
  • docker配置与基础操作
  • Go语言组合和转发