推广 热搜: 广告  优化  服务  百度  设备  排名    项目  生活服务  账号 

干货分享:vue2.0做移动端开发用到的相关插件和经验总结

   日期:2024-12-24     作者:96n1n    caijiyuan  
核心提示:5、better-scrollbetter-scroll介绍: better-scroll, 官方网址,better-scroll 是一款重点解决移动端࿰

5、better-scroll

  • better-scroll介绍
better-scroll, 官方网址,better-scroll 是一款重点解决移动端(现已支持 PC 端)各种滚动场景需求的插件。它的核心是借鉴的  iscroll 的实现,它的 API 设计基本兼容 iscroll,在 iscroll 的基础上又扩展了一些 feature 以及做了一些性能优化。
better-scroll 是基于原生 JS 实现的,不依赖任何框架。它编译后的代码大小是 63kb,压缩后是 35kb,gzip 后仅有 9kb,是一款非常轻量的 JS lib。
  •  使用方法

        安装方法

起步

better-scroll 最常见的应用场景是列表滚动,我们来看一下它的 html 结构

上面的代码中 better-scroll 是作用在外层 wrapper 容器上的,滚动的部分是 content 元素。这里要注意的是,better-scroll 只处理容器(wrapper)的第一个子元素(content)的滚动,其它的元素都会被忽略。

最简单的初始化代码如下

结合接口下拉刷新加载更多数据

6、fastclick插件:解决移动端click 300ms延迟

移动端项目中,在某些机型某些浏览器下,存在click事件300ms延迟的问题,影响用户满意度。原因是:从点击屏幕上的元素到触发元素的 click 事件,移动浏览器会有大约 300 毫秒的等待时间,因为它想看看你是不是要进行双击(double tap)操作。

vue项目中,可以通过引入fastclick第三方依赖包来解决。

安装方法

使用方法

在main.js中

也可以直接下载fastclick.js,在相应页面直接引用。

7、手机前端开发调试利器 – vConsole

vConsole介绍:一个轻量、可拓展、针对手机网页的前端开发者调试面板。

移动端项目,由于在移动端进行调试。

使用方法如下

安装vConsole:

在main.js中引用并实例化

此时可以使用console.log

原理:改写了console.log,重写了实现,用vConsole代理

结果就会出现如图 浮动的按钮,点开之后,就可以看到里面的console信息了

8、webpack之proxyTable设置跨域

在平时项目的开发环境中,经常会遇到跨域的问题,尤其是使用vue-cli这种脚手架工具开发时,由于项目本身启动本地服务是需要占用一个端口的,所以必然会产生跨域的问题。在使用webpack做构建工具的项目中,使用proxyTable代理实现跨域是一种比较方便的选择。

proxyTable相关配置及使用说明

当我们用vue-cli构建项目时,需要在config/index.js文件中,找到dev对象下proxyTable对象进行跨域设置,配置如下

proxyTable配置的意思为:使用字符串"/api"来代替目标接口域名;如果接口地址为"user/getUserInfo",我们可以在所有的接口地址前面加上"/api/"用于设置代理;如:

如果你不想每次请求地址中都带有"/api/",则可以设置

表现结果为

另外一种情况是,我们不需要在每个接口地址前添加"/api/",只需要用接口本身的地址,不需要重新路径即可。如果接口为"/v2/cotton/get_app_list",使用"/v2"做代理;如下

9、vue组件之间通信

  • 父向子传递数据通过props
  • 子向父传递数据

子组件向父组件传递分为两种类型。
1、子组件改变父组件传递的props(你会发现通过props中的Object类型参数传输数据,可以通过子组件改变数据内容。这种方式是可行的,但是不推荐使用,因为官方定义prop是单向绑定
2、通过$on和$emit;即子组件中通过$emit()来触发事件;父组件中通过依附在组价元素上的:on方法来响应事件。

  • 非父子组件传递数据

通过使用一个空的Vue实例作为中央事件总线。

相邻组件1,通过$emit()传递数据

相邻组件2,通过$on()接收数据

10、ref特性的使用

 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的  对象上。

如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例

当  用于元素或组件的时候,引用信息将是包含 DOM 节点或组件实例的数组。

关于 ref 注册时间的重要说明:因为 ref 本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们 - 它们还不存在! 也不是响应式的,因此你不应该试图用它在模板中做数据绑定。

通过在引用的子组件上使用ref属性实现父组件调用子组件的方法及属性

在父组件中引用子组件并定义ref

调用定义在子组件中的方法show

11、vue中setTimeout的使用

在vue中使用setTimeout或者setInterval,如果按照在原来js的中方法,如

会发现data中定义的变量isFlag是获取不到的;解决方法如下

  • 用setTimeout通过es6语法,setInterval也是一样
  • 定义外部self来代替全局this

我们会发现利用例子的第一种方法,使用this来获取变量,会报错。这就是老生常谈的javascript 的this 的问题。 

因为用的一个function){} 这里的 独立的作用域 this指向了全局(这里是window)而且window里没有myFunc这个函数,所报了错。 
使用es6的->写法,this继承外部对象,this指向为vue实例,即(new Vue

12、监听鼠标滚动事件,实现头部悬浮效果

$nextTick 是在下次 DOM 更新循环结束之后执行延迟回调,鼠标滚动事件需要通过window.addEventListener("scroll",'')进行监听。

13、vue上传图像

通过new FormData(),创建form对象,通过append向form对象添加数据。

html代码如下

14、vue,@click="event()",添加()与不添加()的区别

应该是 Vue 对函数调用表达式额外用了一个函数做了层包装。
加与不加括号的区别在于事件对象参数 event 的处理。

不加括号时,函数第一个参数默认为 event;加了括号后,需要手动传入 $event 才能获得事件对象。

项目实践:基于vue2.0 +vuex+ element-ui后台管理系统

后面会更新第二篇文章

  • VUX - Vue 移动端 UI 组件库的使用
  • vuex:vue状态管理工具详细入门
  • 百度地图api在vue项目中的使用:
  1.  vue2如何给地图添加房源覆盖物
  2.  如何给地图添加自定义定位控件并更换控件的图标
  3. 几个常用的api(地图缩放,拖拽,获取当前位置)等功能的实现
  • 微信api在vue项目中的使用
  1. vue2实现微信分享坑点和经验
  2. vue2实现微信支付坑点和经验
  • fetch封装接口的统一管理

 

 

 

 

本文地址:http://gzhdwind.xhstdz.com/xwnews/696.html    物流园资讯网 http://gzhdwind.xhstdz.com/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类生活信息

文章列表
相关文章
最新动态
推荐图文
生活信息
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号