vue中属性的基本用法

v-for指令的用法

v-for指令用于重复输出当前元素。

案例:写一个新的组件页面:For.vue 当访问: /for时看到它。

场景1

遍历字符串数组输出每一个列表项元素:

data: {nav: ['京东超市','京东家电','秒杀','拍卖','京东生鲜','PLUS会员']
}
<ul><li v-for="item in nav">{{item}}</li>
</ul>

上述写法,类似于:

for(let i=0; i<nav.length; i++){let item = nav[i]输出  `<li> ${item} </li>`
}
场景2

遍历对象数组输出每一个列表项元素:

data: {movies: [{id:1, name:'交换余生', showingon:'2021-10-10', duration:124},{id:2, name:'杀手', showingon:'2022-10-09', duration:114},{id:3, name:'功夫', showingon:'2023-1-10', duration:194},{id:4, name:'功夫熊猫', showingon:'2011-05-10', duration:141}]
}
<div><div v-for="item in movies" :key="item.id">ID:{{item.id}}  &nbsp;&nbsp;|&nbsp;&nbsp;名称:{{item.name}} &nbsp;&nbsp;|&nbsp;&nbsp;上映时间:{{item.showingon}} &nbsp;&nbsp;|&nbsp;&nbsp;时长:{{item.duration}}分钟</div>
</div>
拓展1

在使用v-for遍历输出数组数据的同时,引用数组的下标:

<div v-for="(item,i) in movies" :key="item.id">..{{i}} 下标
</div>
拓展2

纯粹的按照数量重复输出元素:

<div v-for="item in 100" :key="item">内容</div>
:key的作用

v-for指令一般都需要配一个v-bind:key(简写 :key)来为每一个列表项设置一个唯一标识符(简单理解为每一个item一个名字)。目的是为了提高列表更新时的DOM渲染性能。如果列表中已经包含很多列表项了,后续由于列表数据的变化需要重新渲染列表时,将会通过:key属性来检测当前需要渲染的列表项是否已经渲染过(比较列表项的key在原始列表中是否已经存在),如果已经渲染过,就不会重新创建DOM了。

那么一般将什么设置为:key的值?

<div v-for="(item,i) in list" :key="item.id"></div>  id是唯一属性
<div v-for="(item,i) in list" :key="i"></div>  下标 但不建议

:key的数据类型只能是number和string,不能是对象。同一个列表中的列表项的key不能重复,否则控制台报错。

Vue中的计算属性

Vue提供了一种特殊的属性:计算属性(Computed)。这种属性本质上是一个函数(由函数内部计算返回结果)。计算属性可以在template中以属性的语法进行访问。如果计算过程中所需要的变量有变化,则计算属性的结果也将会及时更新。

data() {},
methods: {},
computed: {  // computed中定义计算属性totalPrice(){  // 计算属性的本质是个函数   函数名就是计算属性名return xxx}
} 
<span>计算结果:{{totalPrice}}</span>

将函数定义在计算属性中(computed)与方法中(methods)的区别。

如果定义成方法,那么调用时需要: {{ getTotal() }}

如果定义成计算属性,不需要小括号:{{ totalPrice }}

如果定义成计算属性,则第一次计算结束后,将会把结果缓存下来,以后直接使用(不去重新计算)。当计算时所涉及到的响应式变量有变化时,才会重新计算 计算属性的结果。

表单元素的双向数据绑定指令 v-model

加入有如下输入框:

<input v-model="name" type="text" placeholder="">
data: {name: ''
}

只需要按照上述写法,即可完成输入框的value属性与data中name之间的双向数据绑定:

  1. 只要有输入框value有变化(输入了数据),name也将更新。

  2. 只要data中的name有变化(js修改了name),那么输入框中的文本也将更新。

案例:编写一个注册页面:views/Register.vue。提供一个注册表单。

访问:http://localhost:8080/register看到该注册页面。

Vue的监听器 Watch

vue为了更好的监控所管理的响应式变量的变化,提供了数据监听器:watch。通过监听器就可以监听数据的动态改变:一旦被监听的响应式变量的值有变化,就会立即执行相应方法。

基本语法如下:

data() {return {name: ''}
},
watch: { // 定义监听器// 声明一个与被监听变量同名的方法即可监听该变量,且传入两个参数(新值, 旧值)name(newValue, oldValue){ }  
}

其他表单组件的双向数据绑定方式
<template><div><h3>注册</h3><hr>用户账号:<input v-model="form.name" type="text"><hr>用户密码:<input v-model="form.pwd" type="password"><hr>确认密码:<input v-model="form.pwd2" type="password"><hr>用户手机:<input v-model="form.phone" type="text"><hr>证件类型:<input type="radio" v-model="form.idcard" value="sfz">身份证<input type="radio" v-model="form.idcard" value="jgz">军官证<input type="radio" v-model="form.idcard" value="sbk">社保卡<input type="radio" v-model="form.idcard" value="jz">驾照<hr>感兴趣的行业:<input v-model="form.hy" value="jr" type="checkbox">金融<input v-model="form.hy" value="yl" type="checkbox">医疗<input v-model="form.hy" value="hlw" type="checkbox">互联网<input v-model="form.hy" value="zmt" type="checkbox">自媒体<input v-model="form.hy" value="ai" type="checkbox">AI+<hr>选择籍贯:<select v-model="form.jg"><option value="hn">河南省</option><option value="hb">河北省</option><option value="sd">山东省</option><option value="sx">山西省</option></select>
​<hr><button @click="submit">提交</button><button @click="reset">重置</button></div>
</template>
​

自定义指令

<p v-red>文本</p>
<p v-blue>文本</p>
directives: {  // 自定义指令 red: {  // 自定义指令的名字为v-red  示例:<span v-red></span>//当拥有该指令的dom元素被插入到DOM树后,自动执行inserted// 并且传入绑定了该指令的DOM对象:elinserted(el){el.style.color="red"}}
}

Axios

axios是一个网络通讯库,封装了原生的ajax,提供了一些简单的API辅助程序员方便的发送http、https请求。底层基于Promise而设计。

安装axios
# 在项目目录下安装axios
npm  i  axios

在浏览器中测试一个接口是否畅通:

https://web.codeboy.com/bmdapi/movie-infos?page=1&pagesize=20
基于axios发送get请求
import axios from 'axios'
let instance = axios.create()
instance({url: 'https://web.codeboy.com/bmdapi/movie-infos',method: 'GET',params: {page:1, pagesize:20}
}).then(res=>{res就是正确的响应结果
}).catch(err=>{err就是错误的结果
})

也可以如下发送get请求传参:

import axios from 'axios'
let instance = axios.create()
instance({url: 'https://web.codeboy.com/bmdapi/movie-infos?page=1&pagesize=20',method: 'GET'
}).then(res=>{res就是正确的响应结果
}).catch(err=>{err就是错误的结果
})

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

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

相关文章

【python学习】中级篇-TCP编程Socket模块:客户端与服务端

客户端 创建一个基于TCP连接的Socket AF_INET指定使用IPv4协议 AF_INET6指定使用IPv6协议 # 导入socket库: import socket# 创建一个socket: s socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立连接: s.connect((www.sina.com.cn, 80))客户端要主动发起TCP连接 必…

2022-1-25 机器人运动规划方法综述 航空学报

论文PDF abstract 随着应用场景的日益复杂&#xff0c;机器人对旨在生成无碰撞路径&#xff08;轨迹&#xff09;的自主运动规划技术的需求也变得更加迫 切。虽然目前已产生了大量适应于不同场景的规划算法&#xff0c;但如何妥善地对现有成果进行归类&#xff0c;并分析不同…

Spark---基于Standalone模式提交任务

Standalone模式两种提交任务方式 一、Standalone-client提交任务方式 1、提交命令 ./spark-submit --master spark://mynode1:7077 --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.11-2.3.1.jar 100 或者 ./spark-submit --master spark…

给数据库查询结果添加一个额外的自增编号

1、在mysql数据库可以执行的sql SELECT( i : i 1 ) num,M.* FROMuser M,( SELECT i : 0 ) AS ID GROUP BYM.ID ORDER BYM.create_time SELECT (i :i 1) 是为了生成自增的序列号字段 SELECT i : 0 是为了将i进行初始化每次查询的序列号都会从1开始进行排序生成序列号 在…

go sync.map源码解读

此源码理解仅为个人理解&#xff0c;如有错误欢迎指出 sync.map的数据结构主要包含四个字段 一个互斥锁&#xff0c;readonly,dirty,和miss 从读写两个方面来讲这几个变量 readonly其实就是有bool值的dirty&#xff0c;底层结构都是map readonly的读更新不会上锁&#xff0c…

在springboot中实现WebSocket协议通信

前面介绍了使用netty实现websocket通信&#xff0c;有些时候&#xff0c;如果我们的服务并不复杂或者连接数并不高&#xff0c;单独搭建一个websocket服务端有些浪费资源&#xff0c;这时候我们就可以在web服务内提供简单的websocket连接支持。其实springboot已经支持了websock…

20230511 Windows Ubuntu vscode remote-ssh 连接配置

参考 &#xff1a; VSCode SSH 连接远程ubuntu Linux 主机 VSCode通过Remote SSH扩展连接到内网Ubuntu主机 Ubuntu 安装 sudo apt-get install openssh-server vscode: 安装remote-ssh 插件 连接到服务器IP 免密登录的公钥密钥传递用filezillaUbuntu 和 Windows 文件互传 …

PMP对项目工程师有用吗?

一、什么是项目工程师&#xff1f; 项目工程师是指在各个领域负责技术操作、设计、管理以及评估能力的人员。他们通常担当项目的实施和执行角色&#xff0c;在开发或控制类项目中发挥重要作用。有时&#xff0c;项目工程师的称号还可以用来表示在某个领域取得专业资格的人员。…

深入理解路由协议:从概念到实践

路由技术是Internet得以持续运转的关键所在&#xff0c;路由是极其有趣而又复杂的课题&#xff0c;永远的话题。 SO&#xff1a;这是一个解析路由协议的基础文章。 目录 前言路由的概念路由协议的分类数据包在网络中的路由过程理解路由表的结构路由器关键功能解析 前言 在互联…

PTA-字符串的连接

本题要求实现一个函数&#xff0c;将两个字符串连接起来。 函数接口定义&#xff1a; char *str_cat( char *s, char *t ); 函数str_cat应将字符串t复制到字符串s的末端&#xff0c;并且返回字符串s的首地址。 裁判测试程序样例&#xff1a; #include <stdio.h> #inc…

SQL Server数据库自动备份方法

要编写一个自动备份 SQL Server 数据库的脚本&#xff0c;可以使用 SQL Server Management Studio (SSMS) 或者 Transact-SQL (T-SQL) 脚本。以下是一个简单的 T-SQL 脚本示例&#xff0c;该脚本将数据库备份到指定的文件路径&#xff1a; -- 设置要备份的数据库名称 DECLARE D…

求解Beamforming-SOCP(CVX求解)

时间&#xff1a;2023年11月23日14:00:16&#xff1a; 直接上代码&#xff08;辛苦两天才改出来的&#xff09; clear all; K 4; %user number N4; %base station number var1e-9; H []; %initialize H matrix for i1:Kh 1/sqrt(2*K)*mvnrnd(zeros(N,1),eye(N),1)1i/sqrt(2*…

【C++】泛型编程 ⑫ ( 类模板 static 关键字 | 类模板 static 静态成员 | 类模板使用流程 )

文章目录 一、类模板使用流程1、类模板 定义流程2、类模板 使用3、类模板 函数 外部实现 二、类模板 static 关键字1、类模板 static 静态成员2、类模板 static 关键字 用法3、完整代码示例 将 类模板 函数声明 与 函数实现 分开进行编码 , 有 三种 方式 : 类模板 的 函数声明…

数据结构 二叉树

二叉树 二叉树是n个有限元素的集合&#xff0c;该集合或者为空、或者由一个称为根&#xff08;root&#xff09;的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成&#xff0c;是有序树。当集合为空时&#xff0c;称该二叉树为空二叉树。在二叉树中&#xff0c;一个…

【8】Spring Boot 3 集成组件:安全组件 spring security【官网概念篇】

目录 【8】Spring Boot 3 集成组件&#xff1a;安全组件 spring securitySpring Security 简介先决条件引入依赖身份验证密码存储密码存储历史DelegatingPasswordEncoder密码存储格式密码加解密类自定义密码存储 体系结构 ArchitectureServlet 过滤器DelegatingFilterProxyFilt…

第二十章 多线程

20.2创建线程 20.2.1继承Thread类 Thread类是Java.lang包中的一个类&#xff0c;从这个类中实例化的对象代表线程&#xff0c;程序员启动一个新线程需要建议Thread实例。 public class ThreadTest extedns Thread{} run方法格式&#xff1a; public void run(){} 20.1让线程循…

mysql命令导出表结构和数据

MySQL是一款流行的关系型数据库管理系统&#xff0c;是许多公司和组织使用的首选数据库。在日常使用中&#xff0c;我们经常需要对数据库进行备份和复制&#xff0c;因此必须了解如何导出表结构和表数据。以下是使用MySQL命令导出表结构和表数据的方法。 1. 导出表结构 mysql…

AnalyticDB for PostgreSQL 实时数据仓库上手指南

AnalyticDB for PostgreSQL 实时数据仓库上手指南 2019-04-016601 版权 本文涉及的产品 云原生数据仓库 ADB PostgreSQL&#xff0c;4核16G 50GB 1个月 推荐场景&#xff1a; 构建的企业专属Chatbot 立即试用 简介&#xff1a; AnalyticDB for PostgreSQL 提供企业级数…

iOS合并代码后解决冲突

合并主干和分支代码后有冲突&#xff0c;xcode无法运行&#xff0c;如下图&#xff1a;文件显示不了&#xff0c;项目名也显示不了 解决冲突&#xff1a; 1.选中左边目录栏的项目名。鼠标右键--> Show in Finder 2.选中项目文件 xxxx.xcodeproj。鼠标右键--> 显示包内容…

【python学习】中级篇-绘制图形:turtle库

turtle库是Python的一个绘图库&#xff0c;它提供了一个简单的绘图窗口&#xff0c;可以让你通过控制一个小海龟在屏幕上移动来绘制图形。 以下是一个简单的turtle库用法示例&#xff1a; 在这个示例中&#xff0c;我们首先导入了turtle库&#xff0c;然后创建了一个画布和一个…