计算属性
计算属性
插值的普通函数,只要页面一刷新,函数就会重写计算,跟函数没关的值的变化,函数也会重写计算
把函数当成属性来用---》只有这个函数使用的属性(变量)变化,函数才重写运算
代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="./js/vue.js"></script> </head> <body> <div id="app"> <input type="text" v-model="mytest2">-->{{mytest2}} <br> <input type="text" v-model="mytext">--->{{mytext.substring(0,1).toUpperCase()+mytext.substring(1)}} <br> 函数方式:{{getName()}} <br> 计算属性:{{getName2}} </div> </body> <script> var vm = new Vue({ el: '#app', data: { mytext: '', mytest2: '', }, methods:{ getName(){ console.log("我执行了") return this.mytext.substring(0,1).toUpperCase()+this.mytext.substring(1) } }, // 8生命周期 computed:{ getName2(){ console.log("计算属性我执行了") return this.mytext.substring(0,1).toUpperCase()+this.mytext.substring(1) } } }) </script> </html>
通过计算属性,重写过滤案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>过滤案例</title> <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script> </head> <body> <div id="box"> <p><input type="text" v-model="myText" placeholder="请输入要筛选的内容:"></p> <ul> <li v-for="data in newList">{{data}}</li> </ul> </div> </body> <script> var vm = new Vue({ el: '#box', data: { myText: '', dataList: ['a', 'at', 'atom', 'be', 'beyond', 'cs', 'csrf'], }, computed:{ newList(){ console.log('我执行了') var datalist2 = this.dataList.filter(item => { return item.indexOf(this.myText) > -1 }) return datalist2 } } }) </script> </html>
通过计算属性实现名字首字母大写
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="js/vue.js"></script> </head> <body> <div id="box"> <!--大段的代码写在这里不好,使用计算属性--> {{mytext.substring(0,1).toUpperCase()+mytext.substring(1)}} <p>计算属性:{{getname}}</p> <!--普通方法要加括号--> <p>普通方法:{{getNameMethod()}}</p> <!--区别是在同一个页面中使用多次计算属性,不会多次执行--> </div> </body> <script> var vm = new Vue({ el: '#box', data: { mytext:'lqz', }, computed:{ getname(){//依赖的状态改变了,会重新计算 console.log('计算属性') return this.mytext.substring(0,1).toUpperCase()+this.mytext.substring(1) } }, methods:{ getNameMethod(){ console.log('普通方法') return this.mytext.substring(0,1).toUpperCase()+this.mytext.substring(1) } } }) </script> </html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构