Vue——认识day04_计算属性(案例:实时预览)

news2024/11/15 19:58:13

目录

1.计算属性之姓名案例之插值语法的实现

2.计算属性之姓名案例之methods语法的实现

3.计算属性之姓名案例之计算属性语法的实现

4.计算属性的简写方式



1.计算属性之姓名案例之插值语法的实现

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>姓名案例_插值语法实现</title>

    <script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body>

    <div id="root">
        姓:<input type="text" v-model="firstName">
        <br><br>
        名:<input type="text" v-model="lastName">
        <br><br>
        <!-- slice(0,3):表示显示三位 -->
        <!-- 全名:<span>{{firstName.slice(0,3)}}-{{lastName}}</span> -->
        全名:<span>{{firstName.slice(0,3)}}-{{lastName}}</span>
    </div>
    </div>
    
</body>

<script type="text/javascript">
    Vue.config.productionTip=false
    new Vue({
        el:'#root',
        data:{
            firstName:'W',
            lastName:'J'
        }
    });
</script>
</html>

2.计算属性之姓名案例之methods语法的实现

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>姓名案例_methods实现</title>

    <script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body>

    <div id="root">
        姓:<input type="text" v-model="firstName">
        <br><br>
        名:<input type="text" v-model="lastName">
        <!-- slice(0,3):表示显示三位 -->
         <br><br>
        全名:<span>{{getFullName()}}</span>
        <br><br>
        <!-- <button @click="getFullName(firstName,lastName)">点击获取全名</button> -->
    </div>
    </div>
    
</body>

<script type="text/javascript">
    Vue.config.productionTip=false
    new Vue({
        el:'#root',
        data:{
            firstName:'W',
            lastName:'J'
        },
        methods: {
            getFullName(firstName,lastName){
                // alert(firstName + '-' + lastName)
                return this.firstName + '-' + this.lastName
            }
        },
    });
</script>
</html>

3.计算属性之姓名案例之计算属性语法的实现

        计算属性是Vue中的一种特殊属性,它不存在于数据对象中,而是通过已有属性进行计算得到的。计算属性的实现原理是借助了Object.defineProperty方法提供的getter和setter函数。当初次读取计算属性时,会执行一次getter函数;当依赖的数据发生改变时,会再次调用getter函数。相比于使用methods中的函数来实现相同的计算逻辑,计算属性具有缓存机制,因此效率更高。另外,调试计算属性也更加方便。

        需要注意的是,计算属性最终会出现在Vue实例的vm对象上,可以直接读取和使用。如果需要修改计算属性的值,必须在计算属性的set函数中进行响应式的更新,并确保更新的同时引起计算属性所依赖的数据发生变化。

示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>姓名案例_计算属性实现</title>

    <script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body>

    <div id="root">
        姓:<input type="text" v-model="firstName">
        <br><br>
        名:<input type="text" v-model="lastName">
        <br><br>
        全名:<span>{{fullName}}</span>
        <br><br>
        <!-- 由于计算属性这里有缓存所以之后的都没有调用get 
        但是对于method一直都会调用 
        -->
        全名:<span>{{fullName}}</span>
        <br><br>
        全名:<span>{{fullName}}</span>
        <br><br>
    </div>
    </div>
    
</body>

<script type="text/javascript">
    Vue.config.productionTip=false
    const vm = new Vue({
        el:'#root',
        data:{
            firstName:'W',
            lastName:'J'
        },
        // 计算属性
        computed:{
            fullName:{
                // get的作用:当有人读取fullName时get就会被调用
                // 返回值就是fullName 的值
                // get的调用时机:
                // 1.初次读取fullName时
                // 2.所依赖的数据发生变化时(防止脏读)
                get(){
                    return this.firstName + '-' + this.lastName
                },
                // set的调用时机:当fullName被修改时
                set(value){
                    console.log('set:' + value)
                    const arr = value.split('-')
                    this.firstName = arr[0]
                    this.lastName = arr[1]
                }
            }
        }

    });
</script>
</html>

4.计算属性的简写方式

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>姓名案例_计算属性实现</title>

    <script type="text/javascript" src="../js/vue.js"></script>
</head>
</head>
<body>

    <div id="root">
        姓:<input type="text" v-model="firstName">
        <br><br>
        名:<input type="text" v-model="lastName">
        <br><br>
        全名:<span>{{fullName}}</span>

    </div>
    </div>
    
</body>

<script type="text/javascript">
    Vue.config.productionTip=false
    const vm = new Vue({
        el:'#root',
        data:{
            firstName:'W',
            lastName:'J'
        },
        // 计算属性
        // 在确定只读不改之后可以采用简写的形式
        computed:{
            // 完整写法
/*             fullName:{
                get(){
                    console.log('get被调用了')
                    return this.firstName + '-' + this.lastName
                },
                set(value){
                    console.log('set:' + value)
                    const arr = value.split('-')
                    this.firstName = arr[0]
                    this.lastName = arr[1]
                }
            } */

            //简写
            // 这里的function就相当于get()
            // fullName:function(){
            fullName(){
                console.log('get被调用了')
                return this.firstName + '-' + this.lastName
            }


        }

    });
</script>
</html>


这文章真水!!!

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

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

相关文章

逆向工程、Spring框架IOC、AOP学习

系列文章目录 第一章 基础知识、数据类型学习 第二章 万年历项目 第三章 代码逻辑训练习题 第四章 方法、数组学习 第五章 图书管理系统项目 第六章 面向对象编程&#xff1a;封装、继承、多态学习 第七章 封装继承多态习题 第八章 常用类、包装类、异常处理机制学习 第九章 集…

linux服务器/虚拟机安装redis

py3安装&#xff08;慢的一批无语了&#xff09; wget http://cdn.npm.taobao.org/dist/python/3.6.5/Python-3.6.5.tgz && tar -zxvf Python-3.6.5.tgz && cd Python-3.6.5/ && ./configure --prefix/usr/local/python3 --with-ssl && make …

重磅!预读 New feature 提升再次提升20%+性能

在7月底发布的MogDB 5.0.8版本中&#xff0c;引入了几个新特性&#xff0c;其中的预读功能又将全表扫描能力提升了至少20%。 什么是MogDB 预读功能 数据库中的数据是按照一个个页面进行组织管理的&#xff0c;CPU以页面为单位对数据进行处理&#xff0c;这就使得CPU处理和I/O之…

AI模型:全能与专精的较量与未来潜力探讨

AI模型&#xff1a;追求全能还是专精&#xff1f; 随着人工智能技术的飞速发展&#xff0c;AI模型逐渐成为各个领域的焦点。近日&#xff0c;OpenAI即将推出的“草莓”模型&#xff0c;以其全能型的特点引起了广泛关注。在这篇文章中&#xff0c;我们将探讨全能型AI与专精型AI…

第十三章、 泛型

第十三章、 泛型 13.1 泛型语法 13.1.1 泛型的引入与入门 看一个需求 &#xff08;1&#xff09;. 请编写程序&#xff0c;在ArrayList中&#xff0c;添加3个Dog对象 &#xff08;2&#xff09;. Dog对象含有name和age&#xff0c;并输出name和age&#xff08;要求使用getXx…

IPv6和IPv4的主要区别

地址变化与转换&#xff1a; IPv6 二进制数有 128 位&#xff0c;IPv6 使用十六进制表示&#xff0c;中间使用 : 分隔。 简写&#xff1a; 将前面连续的 0 &#xff0c;使用 :: 表示。缩写只能使用一次&#xff0c;而且缩头不缩尾。 首部&#xff1a; 地址划分&#xff1a; IPv…

WEB:探索富文本编辑器的详细指南

请关注微信公众号&#xff1a;拾荒的小海螺 博客地址&#xff1a;http://lsk-ww.cn/ 1、简述 富文本编辑器&#xff08;Rich Text Editor, RTE&#xff09;是一种允许用户在不需要编写HTML或CSS代码的情况下创建和编辑复杂文本内容的工具。无论是博客平台、内容管理系统&…

pnpm 查看库的所有版本

1、最近在做图布局的时候&#xff0c;发现默认版本是beta版 2、那么我们如何来查看远程库中有什么版本可以安装呢&#xff1f; 3、使用命令&#xff1a; pnpm view antv/layout versions pnpm view 这里替换成要查看的库名 versions

Flutter-->自定义容器Widget(类比Android自定义ViewGroup)

上一篇Flutter–&#xff1e;自定义Widget(类比Android自定义View) 介绍了如何自定义一个Widget, 这一篇文章介绍如果自定义容器Widget, 相当于Android中的ViewGroup Android自定义ViewGroup 先来简单介绍一下Android中自定义的ViewGroup: class CustomViewGroup(context: …

树上dp+分组背包类问题

今天也是无意间看到了一个树上dp分组背包类的问题&#xff0c;有些难度的&#xff0c;不好想的嘞&#xff0c;终究还是一个蒟蒻罢了&#xff0c;唔无捂误 话不多说直接看题 P1273 有线电视网 在说明这道题之前&#xff0c;还有一个要提醒的地方就是&#xff0c;树上dp&#…

在 DataOps 体系建设中,主动元数据是何角色?

首先&#xff0c;主动元数据是相对静态元数据而言&#xff0c;它是一种动态、智能化的元数据管理技术&#xff0c;能够将传统静态元数据的被动等待变为实时在线、主动触发&#xff0c;推动数据探查、开发、测试、部署、运维和监控等数据治理工作高效运转&#xff0c;为数据的治…

springWeb介绍、以及SpringWeb的搭建

ssm框架 早期 ssm springstrtuts2mybatis 现在 ssm springspringwebmybatis springweb运行流程 1、SpringWeb概述 SpringWeb是spring框架中的一个模块&#xff0c;基于Servlet API构建的web框架&#xff0c;springweb是Spring为web层开发提供的一套完备的解决方案。在we…

Java毕业设计 基于SSM校园心理咨询服务平台

Java毕业设计 基于SSM校园心理咨询服务平台 SSM 校园心理咨询服务平台 功能介绍 学生: 注册 登录 首页 心理测试 心理文章 心理导师 在线交流 关于我们 搜索 学生中心 我的咨询问题 我的测试结果 我的预约 我的发言 我的收藏 账户信息 教师&#xff1a;登录 发布文…

Linux——nginx 负载均衡

常规的web服务器一般提供对于静态资源的访问&#xff0c;比如说&#xff1a;图片、web样式 网站提供的大部分交互功能都需要web编程语言的支持&#xff0c;而web服务对于程序的调用&#xff0c;不管编译型语言还是解释型语言&#xff0c;web服务同将对于应用程序的调用递交给通…

音频变声怎么弄?(实测好用)快来试试这6个AI变声工具

音频变声怎么弄&#xff1f;随着短视频平台和社交平台的发展&#xff0c;很多小伙伴们会自己拍摄视频分享到平台上&#xff0c;还有一些视频创作者会制作有趣的视频吸引观众。而视频配音就是锦上添花&#xff0c;很多人觉得自己的声音不好听&#xff0c;想要实现录音音频变声&a…

结合ollama gemma2:2b大模型来实现数据分析系统的智能交互

在最近的人员风险行为分析系统开发过程中&#xff0c;需要解决一个问题&#xff1a;在缺乏GPU资源的情况下&#xff0c;如何提升智能交互能力。​我们探索并研究了集成gemma2:2b模型的可行性&#xff0c;这一举措旨在在有限的硬件条件下&#xff0c;为我们的系统注入更高级别的…

如何理解进程

一、进程的概念 进程&#xff1a;顾名思义&#xff0c;就是一个完整执行程序的过程。没错&#xff0c;就是这么简单&#xff0c;但是在程序执行的过程之中&#xff0c;系统会为这个执行的程序分配内存资源&#xff0c;这些过程也包含在进程当中。 进程是动态的&#xff0c;是程…

css-50 Projects in 50 Days(2)

html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>步骤条</title><link rel"style…

基于混沌麻雀搜索算法的光伏MPPT控制MATLAB仿真

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介 此模型主要研究光伏系统MPPT控制&#xff0c;通过将麻雀搜索算法引入至MPPT控制策略中&#xff0c;在模型中通过改变光照强度&#xff0c;来验证算法引入的有效性。模型中包含麻雀搜索算法MPPT与混…

单链表——随机链表的复制

深拷贝&#xff0c;就是将原链表彻底的拷贝&#xff0c;当我们观察这个链表时我们会发现&#xff0c;val与next都比较好拷贝&#xff0c;难点就是在random的拷贝&#xff0c;因为我们需要知被拷贝的节点的random指向的是哪个&#xff0c;所以我们很容易想到的方法就是从头遍历链…