Vue中计算属性、侦听、过滤、自定义指令、ref的…
2019-05-22 06:32:41来源:博客园 阅读 ()
1.计算属性
<div id="app"> <input type="text" v-model="x"> <input type="text" v-model="y"> {{get}} </div> <script> var app=new Vue({ el:"#app", data:{ x:"", y:"" }, computed:{ get:function(){ return this.x+this.y; } } }); </script>
<body> <div id="app"> <input type="text" v-model="msg"> {{msg}} </div> </body> <script> var app=new Vue({ el:"#app", data:{ msg:"", }, watch: { msg:function(newval,oldval){ if(newval=="admin"){ this.msg=oldval; }else{ this.msg=newval; } } }, }); </script>
虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的侦听器。这就是为什么 Vue 通过 watch
选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。
3.过滤器的使用
局部过滤器:
<body> <div id="app"> <input type="text" v-model="msg"> {{msg|myf|nu}} </div> </body> <script> var app=new Vue({ el:"#app", data: { msg:"", }, filters:{ myf:function(val){ return val.toUpperCase(); }, nu:function(val){ var reg=/\d/g; return val.replace(reg,'*'); } } }); </script>
全局过滤器:
<body> <div id="app2"> <input type="text" v-model="msg"> {{msg|myf|nu}} </div> </body> <script> Vue.filter('myf',function(val){ return val.toUpperCase(); }); Vue.filter('nu',function(val){ var reg=/\d/g; return val.replace(reg,'*'); }); var app2=new Vue({ el:"#app2", data:{ msg:"", } }); </script>
<body> <div id="app"> <p v-color>123131321</p> </div> </body> <script> //全局指令 // Vue.directive("color",{ // inserted:function(el){ // el.style.background="red"; // } // }); var app=new Vue({ el:"#app", directives:{ color:{ inserted:function(el){ el.style.background="green"; } } } }); </script>
5.ref的使用
在学习 jq 时,我们首要任务就是学习选择的使用,因为选择可以极其方便帮助我们获取节点查找dom,因为我们要通过dom展示处理数据。而在Vue中,我们的编程理念发生了变化,变为了数据驱动dom;但有时我们因为某些情况不得不脱离数据操作dom,因此vue为我们提供了 ref 属性获取dom节点;
<body> <div id="app"> <input type="button" value="按钮" @click="get"> <p ref="ps">211113131</p> </div> </body> <script> var app=new Vue({ el:"#app", methods: { //用来获取具有ref属性的节点对象 get:function(){ alert(this.$refs.ps.innerHTML); } }, }); </script>
但是在项目开发中,尽可能不要使用ref,因为从一定程度上,ref 违背的mvvm设计原则;
原文链接:https://www.cnblogs.com/shineguang/p/10891235.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- vue.js开发环境搭建教程 2020-03-16
- Vue input控件通过value绑定动态属性及修饰符的方法 2020-03-05
- JS批量操作CSS属性详细解析 2020-02-29
- jQuery表单对象属性过滤选择器实例详解 2020-02-21
- 详解Webstorm 新建.vue文件支持高亮vue语法和es6语法 2020-02-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash