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 相关文章推荐
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
Oct 24 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
js中for in的用法示例解析
Dec 25 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
Mar 13 Javascript
js实现固定显示区域内自动缩放图片的方法
Jul 18 Javascript
jQuery简单实现中间浮窗效果
Sep 04 Javascript
requirejs按需加载angularjs文件实例
Jun 08 Javascript
JS使用tofixed与round处理数据四舍五入的区别
Oct 25 Javascript
微信{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}
Oct 12 Javascript
Vue分页插件的前后端配置与使用
Oct 09 Javascript
JavaScript冒泡算法原理与实现方法深入理解
Jun 04 Javascript
基于elementUI竖向表格、和并列的案例
Oct 26 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超级全局变量数组小结
2012/10/04 PHP
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
php检测用户是否用手机(Mobile)访问网站的类
2014/01/09 PHP
php获取淘宝分类id示例
2014/01/16 PHP
Codeigniter生成Excel文档的简单方法
2014/06/12 PHP
php文件缓存类汇总
2014/11/21 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
js中复制行和删除行的操作实例
2013/06/25 Javascript
深入理解JavaScript是如何实现继承的
2013/12/12 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
Vue Ajax跨域请求实例详解
2017/06/20 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
python 正则表达式 概述及常用字符
2009/05/04 Python
python进阶教程之循环对象
2014/08/30 Python
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
Python中super关键字用法实例分析
2015/05/28 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
车间主管岗位职责
2013/11/14 职场文书
班级入场式解说词
2014/02/01 职场文书
大学生毕业求职自荐书范文
2014/02/04 职场文书
党员个人对照检查材料思想汇报
2014/09/16 职场文书
中共广东省委常委会党的群众路线教育实践活动整改方案
2014/09/23 职场文书
个人先进事迹总结
2015/02/26 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
java中如何截取字符串最后一位
2022/07/07 Java/Android