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 相关文章推荐
cnblogs csdn 代码运行框实现代码
Nov 02 Javascript
父子窗体间传递JSON格式的数据的代码
Dec 25 Javascript
疯狂Jquery第一天(Jquery学习笔记)
May 11 Javascript
Javascript模拟加速运动与减速运动代码分享
Dec 11 Javascript
JavaScript实现数组降维详解
Jan 05 Javascript
js return返回多个值,通过对象的属性访问方法
Feb 21 Javascript
JS使用贪心算法解决找零问题示例
Nov 27 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
Dec 29 jQuery
微信浏览器下拉黑边解决方案 wScroollFix
Jan 21 Javascript
vue实现购物车功能(商品分类)
Apr 20 Javascript
浅谈javascript如何获取文件后缀名
Aug 07 Javascript
JS+css3实现幻灯片轮播图
Aug 14 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
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
php自动加载的两种实现方法
2010/06/21 PHP
Zend Framework入门应用实例详解
2016/12/11 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
实例说明js脚本语言和php脚本语言的区别
2019/04/04 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
js实现选中复选框文字变色的方法
2015/08/14 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
Angular.js实现动态加载组件详解
2017/05/28 Javascript
详解vue-cli与webpack结合如何处理静态资源
2017/09/19 Javascript
AngularJS表单验证功能
2017/10/19 Javascript
使用validate.js实现表单数据提交前的验证方法
2018/09/04 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
Ant-design-vue Table组件customRow属性的使用说明
2020/10/28 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
Python yield使用方法示例
2013/12/04 Python
python 查找字符串是否存在实例详解
2017/01/20 Python
实例讲解Python爬取网页数据
2018/07/08 Python
Python除法之传统除法、Floor除法及真除法实例详解
2019/05/23 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
python二元表达式用法
2019/12/04 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
2020/06/18 Python
CSS Grid布局教程之网格单元格布局
2014/12/30 HTML / CSS
英国家庭珠宝商:T. H. Baker
2018/02/08 全球购物
土地租赁意向书
2014/07/30 职场文书
2014年行政工作总结
2014/11/19 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
nginx前后端同域名配置的方法实现
2021/03/31 Servers
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript