vue知识-04

计算属性computed

注意:

        1、计算属性是基于它们的依赖进行缓存的      
        2、计算属性只有在它的相关依赖发生改变时才会重新求值
        3、计算属性就像Python中的property,可以把方法/函数伪装成属性

        4、computed: { ... }

        5、计算属性必须要有返回值

基本使用:

<body>
<div id="app"><h1>普通函数---其他数据变化---》函数会重写计算</h1>年龄:<input type="text" v-model="age">姓名:<input type="text" v-model="name">{{getAge()}}<h1>计算属性</h1>年龄:<input type="text" v-model="age1">姓名:<input type="text" v-model="name1"><br>{{newAge}}<br>
</div>
</body>
<script>var vm = new Vue({el: '#app',data: {age: '',name: '',age1: '',name1: '',},methods: {getAge() {console.log('我执行了')return Number(this.age) + 10}},computed: {newAge() {console.log('我执行了--计算属性')return Number(this.age1) + 20}}})
</script>
</html>

首字母变大写:

<body>
<div id="app"><h1>首字母变大写</h1><input type="text" v-model="name"> ---》{{newName}}
</div>
</body>
<script>var vm = new Vue({el: '#app',data: {name: '',},methods: {},computed: {newName() {return this.name.substring(0, 1).toUpperCase() + this.name.substring(1)}}})
</script>

通过计算属性,重写过滤案例:

<body>
<div id="app"><h1>过滤案例</h1><input type="text" v-model="search"><ul><li v-for="item in newDataList">{{item}}</li></ul>
</div>
</body>
<script>var vm = new Vue({el: '#app',data: {search: '',dataList: ['a', 'at', 'atom', 'be', 'beyond', 'bee', 'c', 'cs', 'csrf'],},computed:{newDataList(){return  this.dataList.filter(item => item.indexOf(this.search) >= 0)}}})
</script>

监听属性watch

特点:只要属性发生变化,就会执行 函数

<body>
<div id="app"><h1>监听属性</h1><button @click="ordering='id'">按id排序</button><button @click="ordering='price'">按价格排序</button>
</div>
</body>
<script>var vm = new Vue({el: '#app',data: {ordering: ''},watch: {ordering() {console.log('我变了,向后端发送请求')console.log(this.ordering)}}})
</script>

生命周期钩子

# vue 组件的生命周期钩子函数:
    一个vue的组件,从创建开始到最后销毁会经历一些过程,每个过程都绑定了一个函数,当到这个过程的时候,这个函数就会执行
    面向切面编程:AOP
# 8个生命周期钩子函数:
    beforeCreate:组件创建之前实现这个:组件html,js--》html和js都是空的
    created:组件创建完成后:js就有值了,html还是空的  (向后端发送ajax请求)
    beforeMount:挂载模板之前,js有值,模板(html) 还是空的(向后端发送ajax请求)
    mounted:挂载完成:js有值,模板有值
    beforeUpdate:刷新之前执行:只要页面发送变化或js变量发生变化,就会触发它的执行
    updated:刷新之后执行
    beforeDestroy:被销毁之前执行  (资源清理性工作)
    destroyed:被销毁之后执行
# 实际用途:
        1、页面加载完成,向后端发请求拿数据:写在create中
         2、组件中有定时任务,组件销毁,要销毁定时任务


# 补充:定时器和延时器:

setTimeout( ()=>{console.log('延时器,3s后执行')
},3000)setInterval(()=>{console.log('每隔3s执行')
},3000)

组件介绍Vue.component

注意:

        1、组件是有模板,有js的 ,有方法的对象  

        2、组件和组件之间的变量,模板都是隔离的

        3、Vue.component( '组件名' {  })

        4、使组件,直接根据组件名使用即可   <Child></Child>

        5、data里是数据需写在return{ age:19,... }

 全局组件和局部组件:

        全局组件:1、 定义:Vue.component('Child',{})

                          2、使用,可以在任意位置使用   <Child></Child>

        局部:1、定义:var vm = new Vue({})

                   2、使用:只能用在被 当前组件管理的html(#app) 中,放在别的位置找不到

定义组件:

    Vue.component('Child',{template: `<div><h1>我是组件</h1><button @click="haneleClick">点我看美女</button><p>年龄是:{{ age }}</p></div>`,data() {return {age: 19}},methods: {haneleClick() {alert('美女')}}})

局部组件和全局组件

全局组件:<Lqz> </Lqz>

    // 1 定义全局组件Vue.component('Lqz', {template: `<div><h1>{{ name }}</h1><button @click="handleClick">点我换名字</button></div>`,data() {return {name: 'lqz'}},methods: {handleClick() {this.name = '彭于晏'}}})

局部组件: 是定义在组件内部,只能在当前组件中使用    <Child></Child>

<script>   // 全局组件Vue.component('Child', {template: `<div><Lqz></Lqz><Lqz></Lqz><Lqz></Lqz></div>`,// 局部组件components: {Lqz: {template: `<div><h2>我是局部组件</h2></div>`,data() {return {}},methods: {},}}})var vm = new Vue({el: '#app',data: {},methods: {handleClick() {alert('美女') }},})
</script>

组件间通信之父传子

使用自定义属性实现父传子:
        1、在父中定义变量  name='lqz'
        2、在子组件上 写自定义属性  <Child :name="name"></Child>
        3、在组件内部:props:['name']  # 可以接收多个
        4、在子组件内部,就可以使用插值,使用这个变量

<body>
<div id="app"><h1>组件通信之父传子:自定义属性</h1><p>父组件中得名字:{{name}}</p><div style="background-color: pink"><Child :name="name" yy="xx"></Child></div>
</div>
</body>
<script>// 子Vue.component('Child', {template: `<div><h2>我是Child组件</h2><h3>父组件传递给子组件的:{{ name }}=={{yy}}</h3></div>`,data() {return {}},props:['name','yy']})//父var vm = new Vue({el: '#app',data: {name:'lqz'},})
</script>

组件间通信之子传父

2、

<body>
<div id="app"><h1>组件通信之子传父:自定义事件</h1>子组件的值:{{p_name}}<div style="background-color: pink"><Child @myevent="handleEvent"></Child></div>
</div>
</body>
<script>// 子Vue.component('Child', {template: `<div><h2>我是Child组件</h2><input type="text" v-model="name">-->{{ name }}<button @click="handleSend">传给父亲</button></div>`,data() {return {name: ''}},methods: {handleSend() {this.$emit('myevent',this.name)}}})//父var vm = new Vue({el: '#app',data: {p_name: ''},methods: {handleEvent(name) {// name 是 子组件中调用  this.$emit('myevent',this.name) 传过来的// alert('美女')this.p_name=name  // 把子组件中传入的,赋值给父组件的p_name变量}}})
</script>

今日思维导图:

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

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

相关文章

css的一些属性

我们在写项目的时候&#xff0c;会遇到多种多样的样式&#xff0c;大部分都是由css来实现的&#xff0c;css可以让我们的页面更美观&#xff0c;css通常是配合HTML使用&#xff0c;代码较为简单! 下面我就给大家举几个较为常用的一些css属性。 1.CSS中怎样让元素圆角化&#…

【从零开始学习微服务 | 第一篇】什么是微服务

目录 前言&#xff1a; 架构风格&#xff1a; 单体架构&#xff1a; 分布式架构&#xff1a; 微服务&#xff1a; 总结&#xff1a; 前言&#xff1a; 在当今快速发展的软件开发领域&#xff0c;构建大型应用程序已经成为一项巨大的挑战。传统的单体应用架构往往难以满足…

未完成销量任务的智己汽车突发大规模车机故障,竞争压力不小

2024年刚开年&#xff0c;智己汽车便上演了一出“开门黑”。 近日&#xff0c;不少车主在社交平台发帖&#xff0c;反映智己LS6出现大规模车机故障&#xff0c;包括但不限于主驾驶屏幕不显示车速、档位、行驶里程&#xff0c;左右转盲区显示失效&#xff0c;无转向灯、雷达提醒…

ThreadLocal如何使用详解

ThreadLocal概述&#xff1a; ThreadLocal是Java中的一个线程局部变量工具类&#xff0c;它提供了一种在多线程环境下&#xff0c;每个线程都可以独立访问自己的变量副本的机制。ThreadLocal中存储的数据对于每个线程来说都是独立的&#xff0c;互不干扰。 使用场景&#xff1a…

Linux最常用的几个系统管理命令

文章目录 Linux最常用的几个系统管理命令查看网络信息的原初 ifconfig默认无参数使用-s显示短列表配置IP地址修改MTU启动关闭网卡 显示进程状态 ps语法几个实例默认情况显示所有进程查找特定进程信息 任务管理器的 top常规使用显示完整命令设置信息更新次数设置信息更新时间显示…

树莓派非常实用的程序-2 vcgencmd

vcgencmd 工具用于从Raspberry Pi上的VideoCore GPU输出信息。您可以在 https://github.com/raspberrypi/userland/tree/master/host_applications/linux/apps/gencmd[Github].上找到 vcgencmd 实用程序的源代码。要获取支持的所有 vcgencmd 命令的列表&#xff0c;请使用 vcge…

vbs读取数据库值前端FlexGrid前导0出不来的原因

vbs读取数据库值前端FlexGrid前导0出不来的原因 原因 系统设置问题 解决 修改系统默认数值显示&#xff1a; 1&#xff09;控制面板找到“区域”&#xff0c;点击“更改日期、时间和数字模式”&#xff0c;在弹出窗口点击“其他设置” 2&#xff09;在数字一栏中的“显示前…

AirBrush - AI 照片编辑器

​【应用名称】&#xff1a;AirBrush - AI 照片编辑器 ​【适用平台】&#xff1a;#Android ​【软件标签】&#xff1a;#AirBrush ​【应用版本】&#xff1a;6.0.1 ​【应用大小】&#xff1a;270MB ​【软件说明】&#xff1a;谁说我们的照片不能完美&#xff1f;我们相信…

Hello 2024

Hello 2024 A. Wallet Exchange 题意&#xff1a;Alice和Bob各有a和b枚硬币&#xff0c;每次他们可以选择交换硬币或者保留&#xff0c;然后扣除当前一枚手中的硬币&#xff0c;当一方没得扣另一方就赢了。 思路&#xff1a;Alice先手&#xff0c;所以当硬币和为奇数时Alice…

Centos7升级openssl到openssl1.1.1

Centos7升级openssl到openssl1.1.1 1、先查看openssl版本&#xff1a;openssl version 2、Centos7升级openssl到openssl1.1.1 升级步骤 #1、更新所有现有的软件包列表并安装最新的软件包&#xff1a; $sudo yum update #2、接下来&#xff0c;我们需要从源代码编译和构建OpenS…

java基本类型与包装类型之间的关系

JAVA基本类型和包装类型 前言 Java语言中的数据类型分为基本数据类型和引用类型&#xff0c;而我们进行Java开发的时候都听说过基本数据类型和包装类型&#xff0c;今天我们就来详细聊一聊Java中的基本数据类型和包装类型之间的区别。 基本数据类型 Java中的基本数据类型一共有…

网工内推 | 上市公司网工,NP认证优先,最高15薪+项目奖金

01 广东轩辕网络科技股份有限公司 招聘岗位&#xff1a;网络工程师 职责描述&#xff1a; 1、主要负责教育行业园区网的有线及无线网络项目的实施、维护、巡检等工作&#xff1b; 2、协助windows/linux平台服务器OS的安装、部署、配置与维护&#xff1b; 3、协助服务器、存储、…

Fluids —— Minimal fluid setups

目录 Waterline FLIP Boundary Boundary flow 创建流体设置的三个基本方法&#xff1b; Waterline 由FLIP Container SOP与FLIP Solver SOP组成的基本network&#xff0c;可不需要任何外部源&#xff1b; FLIP Container SOP&#xff0c;能使用不同的容器形状&#xff1b;F…

真心建议,幼师姐妹刷到一定要存下啊

幼师姐妹还不知道&#xff1f;但凡早点发现这个好东西&#xff0c;我也不至于天天加班写各种报告了啊&#xff0c;真的写什么都行&#xff0c;什么总结&#xff0c;教案&#xff0c;评语&#xff0c;日报等等 都能写啊&#xff01;&#xff01;&#xff01;

使用FFmpeg+EasyDarwin搭建音视频推拉流测试环境

1. 前言 在上一篇文章《使用VS2017在win10 x64上编译调试FFmpeg&#xff08;附源码和虚拟机下载&#xff09;》中&#xff0c;我们讲解了如何搭建FFmpeg源码编译和调试环境。 调试FFmpeg&#xff0c;还需要搭建流媒体服务器。流媒体服务器的作用是通过网络对外提供音视频服务…

export default 和exprot

1.默认导入和默认导出 语法: export default {需要输出的内容} 接收: import 成员变量的名字 from 文件夹的路径 案例&#xff1a; a.mjs文件夹下默认导出 export default{a:10,b:20,show(){console.log(123);} } 在b.mjs文件中用成员变量进行接收 import AA from &q…

Vue 自定义仿word表单录入之单选按钮组件

因项目需要&#xff0c;要实现仿word方式录入数据&#xff0c;要实现鼠标经过时才显示编辑组件&#xff0c;预览及离开后则显示具体的文字。 鼠标经过时显示 正常显示及离开时显示 组件代码 <template ><div class"pager-input flex border-box full-width fl…

Arthas CPU 火焰图技术 简谈

1.基础命令 help 作用 查看命令帮助信息&#xff0c;可以查看当前 arthas 版本支持的指令&#xff0c;或者查看具体指令的使用说明。cat 作用 打印文件内容&#xff0c;和linux里的cat命令类似&#xff0c;如果没有写路径&#xff0c;则展示当前目录下的文件 使用参考 cat /t…

Linux离线安装MySQL(rpm)

目录 下载安装包安装MySQL检测安装结果服务启停MySQL用户设置 下载安装包 下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 下载全量包如&#xff1a;(mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar) 解压&#xff1a;tar -xzvf mysql-8.1.0-1.el7.x86_64.…

web前端案例之抽奖

使用HTMLJavascript完成抽奖案例 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style>*{margin: 0;padding: 0;}</style></head><body><div id"container" onclic…