VUE计算属性/监听属性
计算属性
关键词 computed: 在该属性中的函数 才是计算属性函数
# 必须是写在computed: 属性中的函数 才是计算属性函数
<input type="text" v-model="name"> ----{{newText}}
# 调用计算属性函数 不需要加括号,默认当属性一样直接用
优点:普通函数只要页面发送变化就会重新执行,浪费效率
计算函数只有在与他相关的数据发送变化时才会执行
重点:必须是写在vue对象computed:属性中的函数,此函数必须要有返回值,
调用时直接使用不要加括号
new Vue({
el: '#app',
data: {
name: '11'
},
computed: {
# 添加计算属性函数
newText() {
return this.name.slice(0, 1).toUpperCase() + this.name.slice(1)
}
}
})
通过计算属性实现过滤
<input type="text" v-model="name">
<ul>
<li v-for=" item in newList">{{item}}</li>
# 直接对于计算属性newList进行循环取值
</ul>
# 根据用户输入内容来过滤列表
data: {
name:'',
dataList: ['a', 'acs', 'abc', 'asdxc', 'bb', 'vasdwss']
},
computed:{
newList(){
return this.dataList.filter(item => item.indexOf(this.name) >=0)}
# 过滤dataList列表,箭头函数 item代表dataList中的每一个值,每一个值和''做过滤,都符号,所以开始会显示所有列表内容
# 当用户输入后 过滤条件改变 dataList列表中每个数据和用户已输入内容比较,保留符号的返回,
# 由于newList发生改变,那for循环也会刷新,实现了时时过滤
监听属性
在data中定义了一些变量,监听这些变量只要变量发生变化就会执行对应函数
关键词:watch:
# 语法:watch:{ 需要监听的变量名(){变量值发送改变后执行的函数} }
<script>
new Vue({
el:'#app',
data:{
type:'1',
},
methods:{
get_data(){
console.log('发送请求拿数据')
}},
watch:{
# 添加一个监听属性
type(){
# 添加需要监听的属性,data中的type,{如果该属性有变化会执行对应的函数}
console.log('我执行了')
console.log(this.type)
this.get_data()
}}})
</script>
<div id="app">
<span @click="type=1">python</span> | <span @click="type=2">golang</span>
# 绑定单机事件,更改属性的值,由于该属性被监听,当值被更改后会执行对应函数
</div>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了