vue学习之热更新、单文件开发、插槽、作用域插槽

news2025/1/23 17:41:36

vue-cli

全局安装:-g,全局安装 vue-cli
npm install -g @vuecli

创建项目

vue create my-app

生成的文件结构:
在这里插入图片描述

  • node-modules: 存放依赖
  • src:源代码文件夹
  • src- components:存放组件的位置

将上一篇中我们html的文件内容移植到使用vue-cli创建的my-app项目中

完整代码,替换App.vue中的代码

<template>
  <div id = "app">{{msg}}
      <div>
          <input type="text" v-model="info">
          <button @click="handleClick">添加</button>
      </div>
      <ul>
          <!-- <li v-for="item in list">{{item}}</li> -->
          <todo-item v-for="item in list" :key="item" :value="item"></todo-item>
      </ul>
  </div>
</template>

<script>
import TodoItem from './components/TodoItem.vue';

export default {
  name: 'App',
  components: {
    TodoItem
  },
  data() {
    return {
      msg: "hello geek!",
      info: '',
      list: []
    }
  },
  methods: {
    handleClick() {
        if (this.info != '') {
            this.list.push(this.info)
            this.info = ''
        }
    }
  }
}
</script>

<style>

</style>

组件定义

使用单文件定义组件TodoItem
在src- components下新建文件:TodoItem.vue,内容如下:

<template>
    <li class="item">{{value}}</li>
</template>

<script>
export default {
    props: ['value']
}
</script>

<style>
.item {
    color: red
}
</style>

和我们在html中的写法区别不大

组件引用

import TodoItem from './components/TodoItem.vue';
组件使用:<todo-item v-for="item in list" :key="item" :value="item"></todo-item>
这里必须绑定一个key,这个key就是这个li标签的key,应该不能重复的,这里为了简单,使用遍历的数据item

插槽 slot

假设要给组件中定义样式,我们要让显示的字体大小是30px

  • 修改组件代码
<li class="item">
    <slot name="value"></slot>
</li>
  • 修改使用部分
<todo-item v-for="item in list" :key="item">
   <template v-slot:value>
     <span style="font-size: 30px">{{ item }}</span>
   </template>
 </todo-item>

v-slot:value绑定插槽属性
插值表达式:{{}} 用来显示item的值

作用域插槽

通过子组件传递出来一种状态,给父组件使用,通过传递出来的状态,进一步使用,非常灵活
需求:添加可选框,未选时是蓝色,选中时,是红色

组件修改部分:

<li class="item">
    <input type="checkbox" v-model="checked">
    <slot name="value" v-bind="{checked}"></slot>
</li>

export default {
    props: ['value'],
    data() {
        return {
            checked: false
        }
    }
}

input上进行属性绑定,在js部分,定义属性初始值为false;
子组件在插槽部分,绑定对象 {} , 将checked 属性封装进去,传递给父组件

父组件修改部分:

<todo-item v-for="item in list" :key="item">
   <template v-slot:value="itemProps">
     <span :style="{fontSize: '30px', color: itemProps.checked ? 'red' : 'blue'}">{{ item }}</span>
   </template>
 </todo-item>

父组件的样式部分也修改为对象::style=""
插槽部分接收子组件传递的对象,命名为:itemProps
在样式部分使用三目表达式,如果itemProps中的checked为true显示红色,为false,显示蓝色,即可达到为选中显示蓝色,选中显示红色

作用域样式 scoped

在子组件的样式部分,我们的样式是全局的,使用 scoped 可以将样式定义为局部的,如果在别的地方也定义了名字为 item的样式,则不会被覆盖
这是全局状态的样式:
在这里插入图片描述

这是局部样式
在这里插入图片描述

样式修改代码如下:

<style scoped>
.item {
    color: red
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/924644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SpringCloud技术专题】「Gateway网关系列」(1)微服务网关服务的Gateway组件的原理介绍分析

为什么要有服务网关? 我们都知道在微服务架构中&#xff0c;系统会被拆分为很多个微服务。那么作为客户端要如何去调用这么多的微服务呢&#xff1f;难道要一个个的去调用吗&#xff1f;很显然这是不太实际的&#xff0c;我们需要有一个统一的接口与这些微服务打交道&#xf…

Android JNI系列详解之CMake配置库文件的输出目录

一、前提 阅读上一篇文章Android JNI系列详解之CMake编译工具的使用&#xff0c;里面讲到了需要配置两个文件&#xff1a;CMakeList.txt和build.gradle 二、配置CMake编译工具输出库文件的路径 1.默认的库文件输出路径&#xff1a;app/build/intermediates/cmake/debug/obj 由此…

springboot整合rabbitmq发布确认高级

在生产环境中由于一些不明原因&#xff0c;导致 rabbitmq 重启&#xff0c;在 RabbitMQ 重启期间生产者消息投递失败&#xff0c;导致消息丢失&#xff0c;需要手动处理和恢复。于是&#xff0c;我们如何才能进行 RabbitMQ 的消息可靠投递。 发布确认 发布确认方案 架构 配置…

poi带表头多sheet导出

导出工具类 package com.hieasy.comm.core.excel;import com.hieasy.comm.core.excel.fragment.ExcelFragment; import com.hieasy.comm.core.utils.mine.MineDateUtil; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.ss.usermodel.*; import org.apache.po…

android studio安装教程

1、android studio 下载 下载网址&#xff1a;Download Android Studio & App Tools - Android Developers 2、开始安装 因为不需要每次连接手机进行调试&#xff0c;android studio给我们提供了模拟器调试环境。 一般选择自定义安装&#xff0c;这样可选sdk以及下载路径…

IT运维:使用数据分析平台监控 Kafka 服务

Apache Kafka 是由 LinkedIn 开发&#xff0c;并于2011年开源的分布式消息队列服务。但是通过快速持续的演进&#xff0c;目前它发展成为成熟的事件流处理平台&#xff0c;可用于大规模流处理、实时数据管道和数据集成等场景。 Kafka 的服务端组件包括一个或者多个 broker。Bro…

视频云存储/安防监控AI视频智能分析平台——智慧煤矿解决方案

一、方案背景 煤矿业是一个高风险行业&#xff0c;存在着许多潜在的安全隐患和风险。互联网、物联网、人工智能等新兴技术高速发展&#xff0c;为传统行业带来颠覆性变革&#xff0c;将高新技术与传统技术装备、管理相融合&#xff0c;实现产业转型升级已经成为煤矿行业发展趋…

【0824作业】C++ 拷贝赋值函数、匿名对象、友元、常成员函数和常对象、运算符重载

一、思维导图 二、作业&#xff1a;实现关系运算符的重载 关系运算符重载 概念&#xff1a; 种类&#xff1a;>、>、< 、< 、 、!表达式&#xff1a;L#R (L表示左操作数&#xff0c;R表示有操作数&#xff0c;#表示运算符)左操作数&#xff1a;既可以是左值也可以…

BSN与中国食品药品企业质量安全促进会达成战略合作协议

2023年8月18日至20日&#xff0c;“首届中国食品药品医疗器械化妆品高质量发展大会”在北京召开&#xff0c;本届大会以“树立新发展理念&#xff0c;服务构建新发展格局&#xff0c;助力食药行业高质量发展”为主题&#xff0c;聚焦食药监管和行业发展的热点、难点问题&#x…

R语言主成分分析

R语言主成分分析 之前介绍过怎么用SPSS进行主成分分析(PCA)&#xff0c;已经忘了的朋友们可以到主页看看 今天主要介绍下R语言主成分分析的几种方法。都是入门级别&#xff0c;跟着我一步步走&#xff0c;一点都不难哈~ 首先调用R语言自带的数据集&#xff0c;USArrests。这…

嵌入式linux之QT交叉编译环境搭建(最简单实测通用版)

这里总结下用于嵌入式linux下的QT交叉编译环境搭建&#xff0c;留作备忘&#xff0c;分享给有需要的小伙伴。不管你的是什么嵌入式linux环境&#xff0c;实测过的通用方法总结。 环境准备 需要准备的环境要求如下&#xff1a; 1.虚拟机(vmvare15.5) 2.ubuntu18.04-x64的linu…

4.网络设计与redis、memcached、nginx组件(一)

网络组件系列文章目录 第四章 网络设计与redis、memcached、nginx组件 文章目录 网络组件系列文章目录文章的思维导图前言一、网络相关的问题&#xff0c;网络开发中要处理那些问题&#xff1f;网络操作IO连接建立连接断开消息到达消息发送网络操作IO特性 二、网络中IO检测IO函…

【Java】基础练习(十一)

1.Poker 定义两个数组&#xff0c;一个数组存储扑克牌花色&#xff0c;另一个数组存储扑克牌&#xff08;A~K&#xff09;&#xff0c;输出52张扑克牌&#xff08;除大小王&#xff09; ♥A、♥2...&#xff08;1&#xff09;Poker类&#xff1a; package swp.kaifamiao.cod…

03-Numpy基础-通用函数:快速的元素级数组函数

通用函数&#xff08;即ufunc&#xff09;是一种对ndarray中的数据执行元素级运算的函数。你可以将 其看做简单函数&#xff08;接受一个或多个标量值&#xff0c;并产生一个或多个标量值&#xff09;的矢量化包 装器。 通用函数&#xff08;ufunc&#xff09;有三种类型&…

【BUG】解决安装oracle11g或12C中无法访问临时位置的问题

项目场景&#xff1a; 安装oracle时&#xff0c;到第二步出现oracle11g或12C中无法访问临时位置的问题。 解决方案&#xff1a; 针对客户端安装&#xff0c;在cmd中执行命令&#xff1a;前面加实际路径setup.exe -ignorePrereq -J"-Doracle.install.client.validate.cli…

countDown+react+hook

道阻且长&#xff0c;行而不辍&#xff0c;未来可期 知识点一&#xff1a; new Date().getTime()可以得到得到1970年01月1日0点零分以来的毫秒数。单位是毫秒 new Date().getTime()/1000获取秒数1分钟60秒&#xff0c;1小时60分钟1hour:60*60>单位是秒 60*60*1000>单位…

远程办公中安全远程访问解决方案

什么是安全远程访问 安全的远程访问是一个至关重要的过程&#xff0c;可让您使用互联网从远处完全控制某人的设备。为了确保安全&#xff0c;为受保护的远程访问采取了额外的身份验证和加密措施。 为什么安全远程访问解决方案很重要 当 IT 技术人员从远处帮助人们解决计算机…

GWO-LSTM交通流量预测(python代码)

使用 GWO 优化 LSTM 模型的参数&#xff0c;从而实现交通流量的预测方法 代码运行版本要求 1.项目文件夹 data是数据文件夹&#xff0c;data.py是数据归一化等数据预处理脚本 images文件夹装的是不同模型结构打印图 model文件夹 GWO-LSTM测试集效果 效果视频&#xff1a;GWO…

NLNet论文总结和代码实现

Non-local Neural Networks&#xff08;非局部神经网络&#xff09;&#xff1a;使用自注意力机制捕获远程依赖。 论文&#xff1a; https://arxiv.org/pdf/1711.07971.pdf 源码&#xff1a; 长距离依赖关系&#xff0c;顾名思义&#xff0c;是要和远程建立关系&#xff0c;在l…

牛客:数对

题目&#xff1a; 解题思路&#xff1a;看到题目的时候&#xff0c;一般第1反应是用两个循环暴力解题&#xff0c;时间复杂度是O(n^2)&#xff0c;不能通过&#xff0c;所以要优化&#xff0c;通过找规律。 一、当 y < k 时&#xff0c; 不可能符合题意&#xff0c;所以 y 从…