(2)svelte 教程:点击操作,输入框和数据绑定

(2)svelte 教程:点击操作,输入框和数据绑定

  • 点击操作

以下是对这段代码的逐行解释:

<script>
    export let name;
    let beltColour = "black";

    const handleClick = () => {
        beltColour = "orange";
    };
</script>

这段代码是 Svelte 组件中的脚本部分,用于定义组件的逻辑和状态。

  • export let name;:这行代码声明了一个名为 name 的变量,并将其导出,使其成为一个可由父组件传递的属性。也就是说,父组件可以通过传递 name 属性来为这个变量赋值。
  • let beltColour = "black";:这行代码声明了一个名为 beltColour 的变量,并将其初始值设置为 "black"。这个变量用于保存腰带的颜色。
  • const handleClick = () => { beltColour = "orange"; };:这行代码定义了一个名为 handleClick 的函数,当该函数被调用时,会将 beltColour 变量的值更新为 "orange"
<main>
    <h1>Hello {name}!</h1>
    <p>{beltColour} belt</p>
    <button on:click={handleClick}>update belt colour</button>
</main>

这段代码是 Svelte 组件的模板部分,用于定义组件的 HTML 结构和绑定的动态内容。

  • <main>:这是一个 HTML <main> 元素,用于包裹组件的主要内容。
  • <h1>Hello {name}!</h1>:这是一个 HTML <h1> 标题元素,使用 {name} 表达式将 name 变量的值插入到标题中。这意味着当 name 变量的值改变时,标题的内容也会动态更新。
  • <p>{beltColour} belt</p>:这是一个 HTML <p> 段落元素,使用 {beltColour} 表达式将 beltColour 变量的值插入到段落中。这意味着当 beltColour 变量的值改变时,段落的内容也会动态更新。
  • <button on:click={handleClick}>update belt colour</button>:这是一个 HTML <button> 按钮元素,使用 on:click={handleClick} 绑定点击事件。当按钮被点击时,会调用 handleClick 函数,从而更新 beltColour 变量的值。

完整的代码结合了脚本部分和模板部分,实现了一个可以响应用户交互(点击按钮)并动态更新界面内容(腰带颜色)的 Svelte 组件。

  • 输入框

好的,这里是综合了所有解释的完整代码逐行解释:

<script>
    export let name;
    let beltColour = "black";

    const handleInput = (e) => {
        beltColour = e.target.value;
    };
</script>
  • export let name;:声明一个名为 name 的变量,并将其导出,使其成为一个可由父组件传递的属性。
  • let beltColour = "black";:声明一个名为 beltColour 的变量,并将其初始值设置为 "black"
  • const handleInput = (e) => { beltColour = e.target.value; };
    • e:这是事件对象(event object),它包含了与事件相关的所有信息。在这里,e 代表输入事件(input event)。
    • e.target:这是事件对象的一个属性,指向触发事件的元素。在本例中,e.target 指的是触发 input 事件的 <input> 元素。
    • e.target.value:这是事件目标元素的 value 属性,表示输入框中当前的文本值。通过 e.target.value 可以获取输入框中的最新内容。
<main>
    <h1>Hello {name}!</h1>
    <p>{beltColour} belt</p>
    <input type="text" on:input={handleInput} value={beltColour}> 
</main>
  • <main>:HTML <main> 元素,用于包裹组件的主要内容。
  • <h1>Hello {name}!</h1>:HTML <h1> 标题元素,使用 {name} 表达式将 name 变量的值插入到标题中。这意味着当 name 变量的值改变时,标题的内容也会动态更新。
  • <p>{beltColour} belt</p>:HTML <p> 段落元素,使用 {beltColour} 表达式将 beltColour 变量的值插入到段落中。这意味着当 beltColour 变量的值改变时,段落的内容也会动态更新。
  • <input type="text" on:input={handleInput} value={beltColour}>
    • <input type="text">:这是一个文本输入框,用户可以在其中输入文本。
    • on:input={handleInput}:这是 Svelte 的事件绑定语法,表示当输入框内容发生变化时,调用 handleInput 函数。
    • 当用户在输入框中输入文本时,会触发 input 事件,并将事件对象 e 传递给 handleInput 函数。函数通过 e.target.value 获取输入框中的当前值,并将其赋值给 beltColour 变量。
    • value={beltColour}:将输入框的初始值设置为 beltColour 变量的当前值,并使输入框中的值与 beltColour 变量保持同步。

综上所述,当用户在输入框中输入文本时,handleInput 函数会被调用,更新 beltColour 变量的值为输入框中的当前文本内容,从而动态更新页面上显示的腰带颜色。

  • 数据绑定

好的,这里是对这段代码的逐行详细解释:

<script>
    export let name;
    let beltColour = "black";
</script>
  • <script>:这个标签包含了 Svelte 组件的脚本部分,用于定义变量和函数。
  • export let name;:声明一个名为 name 的变量,并将其导出,使其成为一个可由父组件传递的属性。这意味着父组件可以通过传递 name 属性来为这个变量赋值。
  • let beltColour = "black";:声明一个名为 beltColour 的变量,并将其初始值设置为 "black"。这个变量用于保存腰带的颜色。
<main>
    <h1>Hello {name}!</h1>
    <p style="color: {beltColour}">{beltColour} belt</p>
    <input type="text" bind:value={beltColour}>
</main>
  • <main>:HTML <main> 元素,用于包裹组件的主要内容。
  • <h1>Hello {name}!</h1>:HTML <h1> 标题元素,使用 {name} 表达式将 name 变量的值插入到标题中。{} 内的内容是 Svelte 的模板语法,表示插值(interpolation),用于将变量的值动态插入到 HTML 中。这个标题将显示为 “Hello [name]!”,其中 [name] 是传递给组件的 name 属性的值。
  • <p style="color: {beltColour}">{beltColour} belt</p>:HTML <p> 段落元素,使用 {beltColour} 表达式将 beltColour 变量的值插入到段落中,并将该值用作段落文本的颜色样式。这意味着当 beltColour 变量的值改变时,段落的文本内容和颜色都会动态更新。例如,如果 beltColour"black",段落将显示为 “black belt” 并且文本颜色为黑色。
  • <input type="text" bind:value={beltColour}>:HTML <input> 输入框元素,使用 bind:value 进行双向绑定(two-way binding):
    • type="text":表示这是一个文本输入框,用户可以在其中输入文本。
    • bind:value={beltColour}:将输入框的值与 beltColour 变量进行双向绑定。这意味着当用户在输入框中输入文本时,beltColour 变量的值会自动更新为输入框中的内容;同时,当 beltColour 变量的值发生变化时,输入框中的值也会自动更新为 beltColour 的新值。

总的来说,这段代码实现了一个简单的 Svelte 组件,它包含一个标题,一个显示腰带颜色的段落,以及一个文本输入框。用户可以通过输入框改变腰带的颜色,段落的文本内容和颜色样式也会相应更新。

  • 完整代码

APP.svelte

<script>
	export let name;
	let beltColour = "black";

	// const handleClick = () => {
	// 	beltColour = "orange";
	// };

	// const handleInput = (e) => {
	// 	beltColour = e.target.value;
	// };
</script>

<main>
	<h1>Hello {name}!</h1>
	<p style="color: {beltColour}">{beltColour} belt</p>
	<!-- <button on:click={handleClick}>update belt colour</button> -->
	<!-- <input type="text" on:input={handleInput} value={beltColour}>  -->
	<input type="text" bind:value={beltColour}>
</main>

<style>
	main {
		text-align: center;
		padding: 1em;
		max-width: 240px;
		margin: 0 auto;
	} 

	h1 {
		color: #ff3e00;
		text-transform: uppercase;
		font-size: 4em;
		font-weight: 100;
	}

	@media (min-width: 640px) {
		main {
			max-width: none;
		}
	}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Table表格组件不请求接口,实现表格里某条数据的本地编辑功能(Vue3+ArcoDesign)

【背景】 在 Vue3 ArcoDesign项目中&#xff0c;使用ArcoDesign-Table表格组件不请求接口&#xff0c;实现表格里某条数据的本地编辑功能。最后统一通过接口发送数据。 【步骤】 1. 在表格每条数据列后添加一个“编辑”按钮&#xff0c;点击该按钮弹出一个对话框&#xff0c…

flink 作业报日志类冲突的解决方案

文章目录 背景思考初步解决方案深入思考下终极解决方案总结 背景 实时作业在页面提交任务后&#xff0c;报NoSuchMethodException 方法&#xff0c;看了下是关于log4j的&#xff0c;首先是作业升级了很多依赖的版本&#xff0c;其次flink 也升级 到了1.19版本 思考 打的Jar有…

计算一个3x3矩阵对角线和其它两条线的元素之和

计算一个3x3矩阵对角线和其它两条线的元素之和 #include <stdio.h> int main () { int d0,b0,s,i,j; int a[3][3]{1,2,3,4,5,6,7,8,9}; for(i0,j2;i<3;i,j--) dda[i][i]a[i][j]; for(i0,j0;i<3;) {bba[i][j]a[i][j2]; ii2;} sdb; printf("d%d\nb%d\ns%d\n&qu…

远程继电器模块实现(nodemcu D1 + 继电器)

前言 接下来将实现一个远程继电器&#xff0c;实时远程控制和查询的开关状态。用 5v 直流电控制 220v 交流电。 硬件上&#xff1a; 使用 nodemcu D1 和 JQC-3FF-S-Z 继电器。 软件上&#xff1a; 使用 nodejs 作为服务端&#xff0c;和 html 作为客户端。 在开始之前在电脑…

数模混合芯片设计中的修调技术是什么?

一、修调目的 数模混合芯片需要修调技术主要是因为以下几个原因&#xff1a; 工艺偏差&#xff08;Process Variations&#xff09;&#xff1a; 半导体制造过程中存在不可避免的工艺偏差&#xff0c;如晶体管尺寸、阈值电压、电阻和电容值等&#xff0c;这些参数的实际值与…

2024年海南省三支一扶报名指南,照片要求

2024年海南省三支一扶报名指南&#xff0c;照片要求 一、考试时间安排&#xff1a; 报名时间&#xff1a;6月1日8:00至6月7日18:00 准考证打印时间&#xff1a;6月17日8:00 考试时间&#xff1a;6月22日 二、招聘人数 海南省计划招募390名高校毕业生

Golang | Leetcode Golang题解之第125题验证回文串

题目&#xff1a; 题解&#xff1a; func isPalindrome(s string) bool {s strings.ToLower(s)left, right : 0, len(s) - 1for left < right {for left < right && !isalnum(s[left]) {left}for left < right && !isalnum(s[right]) {right--}if l…

Golang | Leetcode Golang题解之第126题单词接龙II

题目&#xff1a; 题解&#xff1a; //bfsdfs(如果是双向bfs&#xff0c;效果会更好) func findLadders(beginWord string, endWord string, wordList []string) [][]string {//字典表&#xff08;将wordList中的单词放入hash表中&#xff0c;方便查找&#xff09;dict:make(m…

学习笔记——网络参考模型——TCP/IP模型(物理层)

一、TCP/IP模型-物理层 1、数据传输(交换)的形式 (1)电路交换 特点&#xff1a;通信双方独占通信链路。 优点&#xff1a;数据传输时延小&#xff0c;适用于实时通信&#xff1b;数据按序发送&#xff0c;不存在失序问题&#xff1b;适合模拟信号和数字信号传输。 缺点&am…

指纹采集技术

目录 1.概述 1.1 捺印油墨采集 1.2 现场指纹提取 1.3 在线指纹采集 2. 指纹采集器的关键技术指标 2.1 采集面积 2.2 分辨率 2.3 图像质量 2.4 耐用性 1.概述 最早的指纹采集技术是油墨法&#xff0c;至少已经有上百年的历史。1990年代出现了活体指纹采集器&#xff0c…

国内AI工具访问量第一的竟然是它?!不是Kimi,也不是文心一言

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

spoon基础使用-第一个转换文件

新建一个转换&#xff0c;文件->新建->转换&#xff0c;也可以直接ctralN新建。 从右边主对象树拖拽一个输入->表输入&#xff1b;输出->文本文档输出&#xff1b;也可以直接在搜索框搜素表输入、文本文档输出。 双击表输入新建一个数据库连接 确定后就可以在S…

AndroidStudio中debug.keystore的创建和配置使用

1.如果没有debug.keystore,可以按照下面方法创建 首先在C:\Users\Admin\.android路径下打开cmd窗口 之后输入命令:keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 输入两次密码(密码不可见,打码处随便填写没关系) 2.在build…

JavaScript拖拽API的简单使用

演示效果&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><st…

基于JSP的九宫格日志网站

你好呀&#xff0c;我是学长猫哥&#xff01;如果有需求可以文末加我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;浏览器/服务器&#xff08;B/S&#xff09;结构 系统展示 首页 管理员功能模块 用户功能模块 摘要 本…

2024年春季学期《算法分析与设计》练习13

问题 A: 菱形图案 [命题人 : admin] 时间限制 : 1.000 sec 内存限制 : 128 MB提交问题列表 解决: 1041提交量: 2744统计 题目描述 KiKi学习了循环&#xff0c;BoBo老师给他出了一系列打印图案的练习&#xff0c;该任务是打印用“*”组成的菱形图案。 输入 多组输入&…

[数据集][目标检测]脑肿瘤检测数据集VOC+YOLO格式9787张3类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;9787 标注数量(xml文件个数)&#xff1a;9787 标注数量(txt文件个数)&#xff1a;9787 标注…

基础—SQL—DQL(数据查询语言)聚合函数

一、引言 一般情况下&#xff0c;我们在进行分组查询的时候&#xff0c;一般配合着聚合函数来进行操作&#xff0c;所以先了解和学习聚合函数再学习和操作分组查询。 二、DQL—聚合函数 1、介绍 聚合函数指的是讲一列数据作为一个整体&#xff0c;进行纵向的计算。 2、常见…

VMWare下安装Linux虚拟机(图文)

大家好&#xff0c;在当今科技发展迅速的时代&#xff0c;虚拟化技术在企业和个人用户中变得越来越普遍。VMware作为一款领先的虚拟化软件&#xff0c;为用户提供了在单一物理计算机上运行多个操作系统的能力&#xff0c;为开发、测试和运维等任务提供了便利。在这篇文章中&…

Linux Shell:lsof 命令

Linux Shell&#xff1a;lsof 命令 在 Linux 系统中&#xff0c;lsof&#xff08;list open files&#xff09;命令是一款非常有用的工具。它可以列出当前系统中所有打开的文件&#xff0c;并且还能显示与这些文件相关的进程信息。因为在 Linux 中&#xff0c;一切皆文件&…