16_ Vue.js高级指南:条件渲染、列表渲染与数据双向绑定

news2024/11/23 21:45:39

文章目录

  • 1. 条件渲染v-if
  • 2. 列表渲染v-for
  • 3. 数据双项绑定v-model
  • 4. 计算属性
  • Appendix

1. 条件渲染v-if

  • v-if标签直接接收函数或boolean类型变量
    • v-if 为true,则当前元素会进入到dom树
    • v-else会自动执行 前方v-if的取反操作
  • v-show
    • v-show值为true则值展示
    • 值不展示
  • 区别
    • v-if 数据为false 则元素不在dom树种
    • v-show 数据为false 则元素的属性display=none 元素依然在dom树中仅仅是通过css样式控制元素隐藏

在这里插入图片描述

2. 列表渲染v-for

  • v-for迭代式遍历将数据放入一个标签中

在这里插入图片描述

此处爆红没有问题,是vscode编译器认为我此处出错

3. 数据双项绑定v-model

  • 之前的绑定都是单向绑定
    • 单项绑定:用户在界面上 改变其数据不会影响到原变量数据
    • 双项绑定:用户在界面上 改变其数据会同步修改原变量数据(一般都用于表单标签)
  • 双项绑定可以认为是收集表单信息的命令

在这里插入图片描述

<script setup type="module">
    import {ref} from 'vue' 
    let message =  ref("zhangsan")
</script>
<template>
    <div>
        <input type="text" v-model="message"> <br>
        {{ message }}
    </div>
</template>
  • 绑定表单数据
<script type="module" setup>

  //引入模块
  import { reactive,ref} from 'vue' 
  let hbs = ref([]); //装爱好的值
  let user = reactive({username:null,password:null,introduce:null,pro:null})   
  function login(){
    alert(hbs.value);
    alert(JSON.stringify(user));
  }
  function clearx(){
    //user = {};// 这中写法会将数据变成非响应的,应该是user.username=""
    user.username=''
    user.password=''
    user.introduce=''
    user.pro=''
    hbs.value.splice(0,hbs.value.length);;
  }
</script>

<template>
  <div>
      账号: <input type="text" placeholder="请输入账号!" v-model="user.username"> <br>
      密码: <input type="text" placeholder="请输入账号!" v-model="user.password"> <br>
      爱好: 
        吃 <input type="checkbox" name="hbs" v-model="hbs" value=""><input type="checkbox" name="hbs" v-model="hbs" value=""><input type="checkbox" name="hbs" v-model="hbs" value=""><input type="checkbox" name="hbs" v-model="hbs" value="">
      <br>
      简介:<textarea v-model="user.introduce"></textarea>
      <br>
      籍贯:
          <select v-model="user.pro">
            <option value="1"></option>
            <option value="2"></option>
            <option value="3"></option>
            <option value="4"></option>
            <option value="5"></option>
            <option value="6"></option>
          </select> 
      <br>
      <button @click="login()">登录</button> 
      <button @click="clearx()">重置</button>
      <hr>
      显示爱好:{{ hbs }}
      <hr>
      显示用户信息:{{ user }}
  </div> 
</template> 

<style scoped>
</style>

4. 计算属性

  • computed需要单独导入
import{ref,reactive,computed} from "vue"
  • 计算属性的作用,可以将一个函数 的计算结果赋值给一个变量使用
  • 计算属性就是由别的属性计算而来

在这里插入图片描述

取代了传统的调用方法返回值的行为

  • 性能方面,计算属性的性能优于 方法返回()

Appendix

  • 关于JS和TS选择
TS是JS的一个超集,使用TS之后,JS的语法更加的像JAVA,实际开发中用的确实更多,那么这里为什么我们没有立即使用TS进行开发,原因如下
  • 响应式数据&&非响应式数据

  • 响应数据:在数据变化时候,dom树跟着更新

  • 非响应数据:在数据变化的时候,dom树不跟着变化

  • vue3中,数据需要通过ref/reactive函数的处理才是响应式的;

  • ref/reactive函数导入就能用,vue自带;

 import {ref,reactive} from 'vue'
  • ref函数的特征

    • 在script标签中,操作ref 的响应式数据需要通过.value的形式操作
    • 在template标签中,操作ref直接用即可
  • .vue模块是放到index文件的一个原材料

  • main.js删除了会影响页面显示

  • button标签没有value值,直接在标签中写值即可

  • 导入ref还非得加{},否则无法使用

import {ref} from  'vue'
  • 关于html样式设计;两个div块进行并排,使用浮动操作,宽度使用% 别用像素进行处理即可;

  • @click@sendMenu的值应该是一个JavaScript表达式,它定义了当事件发生时应该执行的函数。所以调用函数时候不带括号;

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

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

相关文章

Qt基于SQLite数据库的增删查改demo

一、效果展示 在Qt创建如图UI界面&#xff0c;主要包括“查询”、“添加”、“删除”、“更新”&#xff0c;四个功能模块。 查询&#xff1a;从数据库中查找所有数据的所有内容&#xff0c;并显示在左边的QListWidget控件上。 添加&#xff1a;在右边的QLineEdit标签上输入需…

C++ | Leetcode C++题解之第139题单词拆分

题目&#xff1a; 题解&#xff1a; class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {auto wordDictSet unordered_set <string> ();for (auto word: wordDict) {wordDictSet.insert(word);}auto dp vector <bool> (s.…

HC-05蓝牙模块配置连接和使用

文章目录 1. 前期准备 2. 进入AT模式 3. 电脑串口配置 4. 配置过程 5. 主从机蓝牙连接 6. 蓝牙模块HC-05和电脑连接 1. 前期准备 首先需要准备一个USB转TTL连接器&#xff0c;电脑安装一个串口助手&#xff0c;然后按照下面的连接方式将其相连。 VCCVCCGNDGNDRXDTXDTXD…

jquery.datetimepicker控件不弹出的问题

项目场景&#xff1a; CRM项目&#xff0c;在项目中涉及日期类输入框&#xff0c;打算采用平常见到的点击选择日期的方式。在浏览了网页后&#xff0c;目前比较好的解决方案是jquery.datetimepicker和flatpicker两种&#xff0c;flatpicker的缺点是官网是英文版的&#xff0c;…

计算机系统基础笔记(12)——控制

前言 在持续输出ing 一、条件码 1.处理器状态&#xff08;x86-64&#xff0c;部分的&#xff09; 当前程序的执行信息 ◼ 临时数据 ◼ 运行时栈的位置&#xff08;栈顶&#xff09; ◼ 当前代码控制点的位置&#xff08;即将要执行的指令地址&#xff09; ◼ 最近一次指令执…

SpringCloudAlibaba基础二 Nacos注册中心

一 什么是 Nacos 官方&#xff1a;一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台。 集 注册中心配置中心服务管理 平台。 Nacos 的关键特性包括: 服务发现和服务健康监测动态配置服务动态 DNS 服务服务及其元数据管理 …

进军rust:从0开始学习rust语法

一.变量类型 Rust语言中的基础数据类型有以下几种&#xff1a; 1.整数型 整数型简称整型&#xff0c;按照比特位的长度和有无符号位可以分为以下几种 isize和usize两种整数类型是用来衡量数据大小的&#xff0c;它们的位长度取决于所运行的目标平台&#xff0c;如果是32位架…

openpose标定中棋盘格检测错误的解决方案

文章目录 1、openpose 棋盘格检测流程2、解决过程3、实测结果1、openpose 棋盘格检测流程 在opencv中通过调用cv::findChessboardCorners()函数,同时指定棋盘格内角点尺寸来检测画面中的棋盘格,结果将以一定顺序来保存结果。通常指定尺寸的两个纬度的值不能相同,例如当指定…

学习笔记——路由网络基础——等开销负载均衡

3、等开销负载均衡 等开销负载均衡&#xff1a;到达同一目标网段&#xff0c;存在多条路由条目&#xff0c;存在两条或两条以上的路由优先级值和开销值都是最优的(优先级值和开销值一致)&#xff0c;则这几条路径执行负载均衡(在ping中就是这条路由发个包再下一条路由再发个包…

计算机网络 —— 网络层(子网掩码和子网划分)

计算机网络 —— 网络层&#xff08;子网掩码和子网划分&#xff09; 网络地址转换NAT子网掩码和子网划分举个例子第一步&#xff1a;看类型第二步&#xff1a;从主机号开始比对第三步&#xff1a;去头去尾 我们今天来看子网掩码和子网划分&#xff1a; 网络地址转换NAT 网络…

[FSCTF 2023]Tea_apk

得到密文和密钥 import base64 from ctypes import c_uint32import libnumDELTA 0x9E3779B9def decrypt(v, n, k):rounds 6 int(52 / n)sum c_uint32(rounds * DELTA)y v[0].valuewhile rounds > 0:e (sum.value >> 2) & 3p n - 1while p > 0:z v[p …

使用缓存降低数据库并发读写方案探索

文章目录 前言缓存设计思想缓存划分缓存应用时机 客户端缓存浏览器缓存网关或代理服务器缓存CDNPCDN 服务端缓存本地缓存本地缓存实现Java堆缓存memcached/ecachecaffeineORM框架一级/二级缓存 分布式缓存分布式缓存优缺点分布式缓存实现分布式缓存实施过程可能遇到问题分布式缓…

【冲刺秋招,许愿offer】第 一 天

【冲刺秋招&#xff0c;许愿offer】第 一 天 知识点emo环节 知识点 Java Leetcode&#xff1a;可以用LinkedListMap模拟实现LRUCache&#xff0c;用hash表查找&#xff0c;双向链表记录顺序。集合&#xff1a;集合的遍历方式&#xff0c;可以使用迭代器(万能)、增强for只能用…

Mysql使用中的性能优化——批量插入的规模对比

在《Mysql使用中的性能优化——单次插入和批量插入的性能差异》中&#xff0c;我们观察到单次批量插入的数量和耗时呈指数型关系。 这个说明&#xff0c;不是单次批量插入的数量越多越好。本文我们将通过实验测试出本测试案例中最佳的单次批量插入数量。 结论 本案例中约每次…

【模拟-BM100 设计LRU缓存结构】

题目 BM100 设计LRU缓存结构 描述 设计LRU(最近最少使用)缓存结构&#xff0c;该结构在构造时确定大小&#xff0c;假设大小为 capacity &#xff0c;操作次数是 n &#xff0c;并有如下功能: Solution(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存get(key)&am…

[大模型]CharacterGLM-6B Transformers部署调用

环境准备 在autodl平台中租一个3090等24G显存的显卡机器&#xff0c;如下图所示镜像选择PyTorch–>2.0.0–>3.8(ubuntu20.04)–>11.8 接下来打开刚刚租用服务器的JupyterLab&#xff0c;并且打开其中的终端开始环境配置、模型下载和运行demo。 pip换源和安装依赖包 …

python爬虫入门教程(一)

上一篇文章讲了爬虫的工作原理&#xff0c;这篇文章以后就要重点开始讲编程序了。 简单爬虫的的两个步骤&#xff1a; 使用HTTPRequest工具模拟HTTP请求&#xff0c;接收到返回的文本。用于请求的包有: requests、urllib等。 对接收的文本进行筛选,获取想要的内容。用户筛选文…

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:隧道和矿井绘图设备

RockMass 正在努力打入采矿业和隧道工程利基市场。 这家位于多伦多的初创公司正在利用 NVIDIA AI 开发一款绘图平台&#xff0c;帮助工程师评估矿井和施工中的隧道稳定性。 目前&#xff0c;作为安全预防措施&#xff0c;地质学家和工程师会站在离岩石五米远的地方&#xff0…

【Pyqt6 学习笔记】DIY一个二维码解析生成小工具

文章目录 Pycharm 配置QtDesignerPyUIC基本模板 代码示例依赖包main.pyscreen_shot_module.pyuntitled.pyuntitled.ui Pycharm 配置 摘自PyQT6的从零开始在Pycharm中配置与使用——蹦跑的蜗牛 pip install PyQt6 PyQt6-toolsQtDesigner File -> Settings -> External …

pdf文件在线压缩网站,pdf文件在线压缩工具软件

在数字化时代的今天&#xff0c;PDF文件已经成为我们日常生活和工作中不可或缺的一部分。然而&#xff0c;随着PDF文件的广泛使用&#xff0c;其文件大小问题也日益凸显。过大的PDF文件不仅占用了大量的存储空间&#xff0c;而且在传输和共享过程中也往往面临诸多不便。因此&am…