1、在外部封装js方法

很多页面都会用到相同的方法,为了代码的复用,可以在外部封装相同的方法

在项目中创建一个utils目录,存放外部封装的js方法

在utils目录下创建getDate.js文件

 export default function getDate(){      //默认导出let date = new Date()let year = date.getFullYear()let mounth = date.getMonth()+1let day = date.getDate()let time = date.getHours()let min = date.getMinutes()let sec = date.getSeconds()let str = year + '-' + mounth +'-' + day + ' ' + time +':' + min + ':' + secreturn str
}export  function getTime(){let date = new Date()let year = date.getFullYear()let mounth = date.getMonth()+1let day = date.getDate()let str = year + '-' + mounth +'-' + dayreturn str
}

默认导出 export  default

1. 如果是默认导出 只能使用一次  export default

2. 如果你想导出多个 可以使用 按需导出   export

3. 在 .vue中使用的话 如果是默认    import  引入的名字  from  文件路径

4. 在.vue中使用的话 如果是按需    import {引入的名字,引入的名字}  from  文件路径

在vue文件中使用

<template><view class="content"><!-- 2022-8-2 19:50:56 --><view class="">{{timeDate1}}</view>   <!-- 2022-8-2  --><view class="">{{getTime1}} </view></view></template>
<script>// import 引入的名字 from 文件路径// import getDate from '../../utils/timeDate.js'// 按需导入// import {getTime} from '../../utils/timeDate.js'// 简写成一行 import getDate,{getTime}  from '../../utils/timeDate.js'export default {data() {return {         title: 'Hello',              // 默认放到vue实例上timeDate1:getDate(),   getTime1:getTime()}},

2、页面跳转

(1)uni.navigateTo

// 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。methods: {toB() {uni.navigateTo({url:'/pages/index/index'     //跳转到index页面})}},

(2)uni.redirectTo

  // 关闭当前页面,跳转到应用内的某个页面。 删除一个页methods: {toB() {uni.redirectTo({url:'/pages/index/index'    //跳转到index页面,删除当前页面})}},

(3)uni.reLaunch

// 关闭所有页面,打开到应用内的某个页面。 删除所有页methods: {toB() {uni.reLaunch({url:'/pages/index/index'   //跳转到index页面,删除其他所有页面})}},

(4)uni.switchTab

// 跳转到底部tabbar页methods: {toB() {uni.switchTab({url:'/pages/index/index'  })}},

3、页面的生命周期

生命周期 : 每到一个阶段就要做不同的事情 生命周期也一样 :每到一个阶段 就执行 不同的钩子函数

页面的生命周期,从开始创建→销毁会执行页面的钩子函数

函数名 说明 执行时机 使用场景
onLoad 监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参) 初次打开页面 只在初始化时使用一次
onShow 监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面 每次进入页面 需要每次更新数据
onReady 监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发 页面初始进入onLoad、onShow之后 更多根据搭配插件使用
onHide 监听页面隐藏 每次离开页面 更多于记录一些数据
onUnload 监听页面卸载 最后离开页面 卸载一些监听事件

onLoad、onShow和onReady的执行:

1. onLoad:第一次创建页面执行

2. onShow:每次进入页面都会执行

3. onReady:页面加载完成执行一次

4、点击事件

语法:v-on:click="方法名" 方法名一定要在methods中声明

简写:@click="方法名"

案例:实现数字的加减

     <view>{{num}}</view><view><button type="default" @click="add">让数字+1</button><button type="default" @click="reduce">让数字-1</button></view>data() {return {num:1}}methods: {add(){this.num += 1},reduce(){this.num -= 1}}

5、input事件

见名知意就是给input标签上的事件 记得只有一些输入的标签才会有这些功能,每次在input上输入一次,就会执行这个方法

   <input v-model="name" @input="inputName" type="text" placeholder="请输入"  style="background: skyblue;"  />data() {return {name: 'Hello',}},methods: {inputName(e){// e/event : 事件对象参数console.log(e)}}

 6、数据的双向绑定

input、textarea等一些输入的功能需要数据双向绑定

    <input v-model="name" @input="inputName" type="text" placeholder="请输入"  style="background: skyblue;"  />data() {return {name: 'Hello',}},

v-model可以双向绑定数据,数据改变,视图也会改变;相反,视图改变,数据也会改变

7、自定义tabbar导航

如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定一级导航栏,以及 tab 切换时显示的对应页。

具体参考uniapp官网:uni-app官网 (dcloud.net.cn)

 "tabBar": {"color": "#7A7E83","selectedColor": "#3cc51f","borderStyle": "black","backgroundColor": "#ffffff","list": [{"pagePath": "pages/index/index","text": "首页"}, {"pagePath": "pages/mine/mine","text": "我的"}]},

8、封装组件

文件后缀为.vue的文件都是组件,组件文件统一放在components目录下

简单封装一个组件 Navigation.vue


<template><view class=""><view class="nav flexC">我是一个导航栏</view></view>
</template>

(1)局部注册

局部注册之前,在需要引用该组件的页面,导入你想使用的组件。

在index.vue中局部注册


<template><view class="">// 3. 使用组件<Navigation></Navigation></view>
</template><script>// 1. 引入组件import Navigation from '../../componets/Navigation.vue'export default {// 2.注册组件components:{Navigation},}
</script>

(2)全局注册

uni-app 支持配置全局组件,需在 main.js 里进行全局注册,注册后就可在所有页面里使用该组件。

在main.js文件中注册


//全局注册组件
import Navigation from './components/Navigation.vue'
Vue.component('Navigation',Navigation) //(组件标签名,组件名)

然后在页面中就可以直接使用组件啦!

uni-app 封装js方、页面的生命周期、数据双向绑定、封装组件相关推荐

  1. vue生命周期及双向绑定

    这篇文章不是原创,看了其他人的分析贴,记录下自己学到的.本篇主要记录一下vue内部流程,以及双向绑定原理.Vue的可爱之处在于他的双向绑定及Virtual DOM的思想. vue内部流程 如图所示,实 ...

  2. vue-router路由、mixin混入、vue-resource、axios、计算属性watch、moment.js、vuex、vue-cli、数据双向绑定、搭建vue环境、vue实例、配置启动项

    路由vue-router介绍: // 1.前端路由核心:锚点值的改变,根据不同的锚点值,渲染指定dom位置的不同数据.// 2.vue中,模板数据不是通过ajax请求的,而是调用函数获取到模板内容// ...

  3. uniapp02 封装方法,页面跳转,页面的生命周期,@click,@input,v-model、封装组件、tabbar

    一,封装方法 默认导出 export default   1. 如果是默认导出 只能使用一次  export default  2. 如果你想导出多个 可以使用 按需导出   export     3 ...

  4. 微信小程序自定义组件中获取app实例的值,生命周期与页面的生命周期执行先后顺序

    调试基本库:2.12.2 最近在接触微信小程序开发 有这么一个需求,自定义组件需要给页面传一个app实例的参数, 总结: 1.自定义组件中data 不能直接获取app.globalData 2.通过自 ...

  5. 微信小程序详解——小程序的生命周期和页面的生命周期

    我是一名安卓程序员,我们安卓中最明显的特征就是类具有生命周期.所以当开发小程序的时候,我自然而然的会先研究小程序的生命周期.在Android中是通过Application来管理安卓程序的生命周期,小程 ...

  6. Asp.net2.0页面的生命周期(续)

    以上就是Asp.net页面生命周期中的几个主要事件.每次我们请求一个Asp.net页面时,我们都经历着同样的过程:从初始化对象到销毁对象.通过了解Asp.net页面的内部运行机制,我相信大家在编写.调 ...

  7. .Net页面的生命周期(ZZ)

    1.        初始化:主要是执行Page的Init事件和OnIint方法. 2.        加载视图状态:主要是执行LoadViewState方法,就是从ViewState中获取上一次的状态 ...

  8. ZT Web Control 开发系列(一) 页面的生命周期

    http://www.cnblogs.com/joeliu/category/143125.html Page是WebForm编程基本元素,它从TemplateControl派生,而TemplateC ...

  9. Asp.net2.0页面的生命周期

    当一个获取网页的请求(可能是通过用户提 交完成的,也可能是通过超链接完成的)被发送到Web服务器后,这个页面就会接着运行从创建到处理完成的一系列事件.在我们试图建立Asp.net页面的 时候,这个执行 ...

最新文章

  1. 【数据结构】判断一个单链表中各结点的值是否有序
  2. 【Android 应用开发】AndroidUI设计之 布局管理器 - 详细解析布局实现
  3. 强网杯2021 [强网先锋]orw
  4. 高新面试系列 性格篇
  5. python求阶乘之和_python计算阶乘前n项和
  6. 双硬盘奇怪问题...
  7. mvn 打包_Spark源码打包编译的过程
  8. 从A页面跳转到B页面动态路由参数
  9. 1.登录mysql数据库_MySql使用全记录1 -----使用命令登录数据库
  10. mysql 数据库的 导入于导出
  11. 九层之台,起于累土:码良组件开发
  12. 织梦建站教程,织梦安全问题解决,修改织梦URL命名规则
  13. 3D图形学一:模仿草的运动 – GPU(Pixel Shader Vertex Shader)实现
  14. ps常用快捷键(二)
  15. 3、(三)外汇学习基础篇之银行间外汇即期交易
  16. MySQL 数据类型
  17. 力扣347:前k个高频元素---leetcode347:Top K Frequent Elements
  18. 对与association和collection的理解:
  19. IO流-常用的IO流总结
  20. 【电子设计】AD2019网状铜加地孔(缝合孔)

热门文章

  1. 鸿蒙OS开源项目的OpenHarmony
  2. 七夕情人节表白网页代码HTML 教你如何制作浪漫的表白网站
  3. 中国移动 待遇之我见
  4. 房产管理系统平台架构求分析
  5. iOS音频技术的研究-音频格式
  6. 数据分析系列之Python数据分析简介
  7. java实现约瑟夫环完整算法_Java简单实现约瑟夫环算法示例
  8. 输入法的好帮手——IMETOOL
  9. COOX培训材料 — MTG
  10. 职业规划及核心竞争力