Vue基本使用之对象提供的属性功能


Posted in Javascript onApril 30, 2019

一 过滤器

过滤器就是vue允许开发者自定义的文本格式化函数,

可以使用在两个地方:输出内容和操作数据中。

1.1 定义过滤器的两种方式

1.1.1 使用Vue.filter()进行全局定义

Vue.filter("RMB1", function(v){
  //就是来格式化(处理)v这个数据的
  if(v==0){
   return v
  }
  return v+"元"
})

1.1.2 在Vue对象中通过filters属性类定义

var vm = new Vue({
 el:"#app",
 data:{},
 filters:{
 RMB2:function(value){
  if(value==''){
  return;
  }else{
   return '¥ '+value;
  }
 }
 }
});

 1.2 计算和监听属性

监听属性,可以帮助我们侦听data中某个数据的变化,从而做相应的自定义操作。

监听属性时一个对象,它的键时要监听的对象或者变量,值是一个函数,当监听的data数据发送变化时,会自定义执行对应的函数,这个函数在被调用时,vue会传入两个形参,第一个是变化前的数据值,第二个是变化后的数据值。

<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <script src="js/vue.js"></script>
</head>
<body>
<div id="app">
 <p>{{ num }}</p>
 <button @click="num++">按钮</button>
</div>
<script>
 let vm = new Vue({
  el: "#app",
  data: {num: 23,},
  watch: {
   //num发生变化的时候,要执行的代码,num必须是data中的键
   num: function (newval, oldval) {
    console.log("num已经发生变化了!", this.num)
   },
  }
 })
</script>
</body>
</html>

Vue基本使用之对象提供的属性功能

二  Vue 对象的生命周期

每个vue 对象在创建时都要经过一系列的初始化过程。在这个过程中vue.js会自动运行一些叫做生命周期的钩子函数,我们可以使用这些函数,在对象创建的不同阶段加上我们需要的代码,实现特定的功能。

2.1 了解数据生成、加载、更新的过程

<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>title</title>
 <script src="js/vue.js"></script>
</head>
<body>
<div id="app">
 <p>{{ num }}</p>
 <button @click="num++"> 按钮</button>
</div>
<script>
 let vm = new Vue({
  el: "#app",
  data: {num: 0},
  beforeCreate: function () {
   console.log("beforeCreate,vm对象尚未创建,num=" + this.num);
   this.name = "zhangsan"; //此时没有this对象,设置name是无效的
  },
  created: function () {
   console.log("created,vm对象创建完成,设置好了要控制的元素范围,num=" + this.num); // 0
   this.num = 20;
  },
  beforeMount: function () {
   // this.$el 就是我们上面的el属性了,$el表示当前vue.js所控制的元素#app
   console.log(this.$el.innerHTML);
   console.log("beforeMount,vm 对象尚未把data数据显示到页面中,num=" + this.num);
  },
  mounted: function () {
   console.log(this.$el.innerHTML);
   console.log("mounted,vm对象已经把data数据显示到页面中,num=" + this.num);
  },
  beforeUpdate: function () {
   console.log(this.$el.innerHTML);
   console.log("beforeUpdate,vm对象尚未把更新后的data数据显示到页面中,num=" + this.num);
  },
  updated: function () {
   console.log(this.$el.innerHTML);
   console.log("updated,vm对象已经把更新后的data数据显示到页面中,num=" + this.num);
  },
 })
</script>
</body>
</html>

效果如下:

Vue基本使用之对象提供的属性功能

点击按钮使数据更新后

Vue基本使用之对象提供的属性功能

2.2 总结

在vue使用的过程中,如果要初始化操作,把初始化操作的代码放在 mounted 中执行。
mounted阶段就是在vm对象已经把data数据实现到页面以后。

一般页面初始化使用。例如,用户访问页面加载成功以后,就要执行的ajax请求。

另一个就是created,这个阶段就是在 vue对象创建以后,把ajax请求后端数据的代码放进 created

三 阻止事件冒泡和刷新页面

3.1 阻止事件冒泡

通过 设置@click.stop来阻止事件冒泡

<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <script src="js/vue.js"></script>
 <style>
  .box1 {
   width: 200px;
   height: 200px;
   background: #ccc;
  }

  .box2 {
   width: 100px;
   height: 100px;
   background: pink;
  }
 </style>
</head>
<body>
<div id="app">
 <div class="box1" @click="func1">
  <!-- @click.stop来阻止事件冒泡 -->
  <div class="box2" @click.stop.prevent="func2"></div>
 </div>
</div>
<script>
 let vm = new Vue({
  el: "#app",
  data: {},
  methods: {
   func1: function () {
    console.log("box1")
   },
   func2: function () {
    console.log("box2")
   }
  }
 })
</script>
</body>
</html>

Vue基本使用之对象提供的属性功能

3.2  阻止表单提交和页面刷新

通过设置 @click.prevent来阻止表单提交

<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <script src="js/vue.js"></script>
</head>
<body>
<div id="app">
 <form action="">
  <input type="text">
  <input type="submit">
  <!-- @click.prevent来阻止表单提交 -->
  <input type="submit" value="提交02" @click.prevent="func3">
 </form>
</div>
<script>
 let vm = new Vue({
  el: "#app",
  data: {},
  methods: {
   func3: function () {
    console.log("页面不刷新时执行点击提交的函数")
   },
  }
 })
</script>
</body>
</html>

Vue基本使用之对象提供的属性功能

总结

以上所述是小编给大家介绍的Vue基本使用之对象提供的属性功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
js判断是否为数组的函数: isArray()
Oct 30 Javascript
jquery的map与get方法详解
Nov 04 Javascript
Jquery遍历节点的方法小集
Jan 22 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
Jun 13 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
Jul 05 Javascript
AngularJs Scope详解及示例代码
Sep 01 Javascript
vue.js的提示组件
Mar 02 Javascript
js 只比较时间大小的实例
Oct 26 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
Apr 20 Javascript
JS面试题大坑之隐式类型转换实例代码
Oct 14 Javascript
Javascript中parseInt的正确使用方式
Oct 17 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
Dec 04 Javascript
原生JS实现随机点名项目的实例代码
Apr 30 #Javascript
vue实现随机验证码功能的实例代码
Apr 30 #Javascript
详解vue 图片上传功能
Apr 30 #Javascript
vue移动端屏幕适配详解
Apr 30 #Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
Apr 30 #Javascript
微信小程序时间戳转日期的详解
Apr 30 #Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
Apr 30 #Javascript
You might like
php 301转向实现代码
2008/09/18 PHP
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
2014/08/28 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
php array_merge_recursive 数组合并
2016/10/26 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
2018/04/04 PHP
利用404错误页面实现UrlRewrite的实现代码
2008/08/20 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
jQuery插件EasyUI实现Layout框架页面中弹出窗体到最顶层效果(穿越iframe)
2016/08/05 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Python selenium文件上传方法汇总
2020/11/19 Python
python flask实现分页效果
2017/06/27 Python
Python基于scapy实现修改IP发送请求的方法示例
2017/07/08 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
对python3中, print横向输出的方法详解
2019/01/28 Python
python判断正负数方式
2020/06/03 Python
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
GWebs公司笔试题
2012/05/04 面试题
中学教师教育感言
2014/02/21 职场文书
借款协议书
2014/04/12 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
小学教师师德承诺书
2014/05/23 职场文书
办公室文员工作自我鉴定
2014/09/19 职场文书
教师个人考察材料
2014/12/16 职场文书
Python3接口性能测试实例代码
2021/06/20 Python
JavaScript实现登录窗体
2021/06/22 Javascript
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2021/08/02 MySQL