uni-app开发和常规Vue开发

个人博客:uni-app开发和常规Vue开发

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发一次,可以发行为App、小程序、网站,

常规Web开发只能发行为网站。

标签

  • Vue中的div标签对应于uni-app是view

  • Vue中的span标签对应于uni-app中是text

生命周期

uni-app中有三种类型的生命周期,应用生命周期、页面生命周期、组件生命周期

应用生命周期

应用生命周期只在App.vue中有效

uni-app支持以下生命周期函数(部分)

函数名 说明
onLaunch uni-app初始化完成时触发(全局只触发一次)
onShow uni-app启动时,或从后台进入前台时显示
onHide uni-app从前台进入后台
onError uni-app报错时触发

app.vue

<script>export default {onLaunch: function() {console.log('App Launch')},onShow: function() {console.log('App Show')},onHide: function() {console.log('App Hide')}}
</script><style>/*每个页面公共css */
</style>

页面生命周期

页面生命周期

组件生命周期

Vue组件生命周期

uni-app 组件支持的生命周期,与vue标准组件的生命周期相同

路由

uni-app

uni-app页面路由为框架统一管理,开发者需要在pages.json里配置每个路由页面的路径及页面样式。

新建页面时,会在pages.json中自动生成路由

pages.json

"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages{"path": "pages/index/index","style": {"navigationBarTitleText": "uni-app"}},{"path" : "pages/login/login","style" :                                                                                    {"navigationBarTitleText": "","enablePullDownRefresh": false}}]

uni-app 有两种页面路由跳转方式:使用navigator组件跳转、调用API跳转。

  • 使用navigator组件跳转

    <navigator url="/" class="link">首页</navigator>
    
  • 调用API跳转

    uni.navigateTo({url: '/pages/login/login'
    })
    

pages \ index.vue

<template><view class="index"><text class="text">首页</text> <button class="btn" @click="login">登录</button></view>
</template><script>export default {methods: {login() {uni.navigateTo({url: '/pages/login/login'})}}}
</script><style lang="less" scoped>.index {text-align: center;.btn {width: 100px;height: 50px;}}</style>

pages \ login \ login.vue

<template><view class="login">login<navigator url="/" class="link">首页</navigator></view>
</template><script>export default {data() {return {}},methods: {}}
</script><style>.login {text-align: center;}.link {color: blue;}
</style>

插一嘴:HBuilderX感觉挺人性化的,缺少的插件保存时会自动帮你安装

Vue路由

Vue路由

相对uni-app的路由设置来说,Vue的路由配置稍稍麻烦一点,先安装vue-router,再建router文件夹,设置路由规则,并导出路由给Vue使用。详情点击上面的链接

Vue3相对于Vue2,也有所变化:Vue3路由

路由守卫

通过安装uni-simple-router插件,实现路由守卫功能

安装npm install uni-simple-router

文档:uni-simple-router

使用:快速上手

页面之间传值

通过查询参数

首页

<template><view class="index">首页<navigator :url="'/pages/login/login?msg='+msg" class="login">登录</navigator></view>
</template><script>export default {data() {return {msg: 'Hello, login Pages'}}}
</script><style lang="less" scoped>.index {width: 500px;text-align: center;margin: 20px auto;}.login {color: blue;}
</style>

登录页

<template><view class="login"><h2>登录</h2>首页发送的信息: {{msg}}</view>
</template><script>export default {data() {return {msg: ''}},methods: {},onLoad(options) {        // 其参数为上个页面传递的数据,参数类型为 Object(用于页面传参)this.msg = options.msg}}
</script><style scoped>.login {text-align: center;width: 300px;margin: 20px auto;}
</style>

以下部分,uni-app和常规Vue开发一样,属于是复习内容

父子组件传值

和Vue一样,顺便复习一下

Vue组件间的数据共享

父传子(props)

子组件

<template><view class="son">子组件: 父组件发送的信息:{{msg}}</view>
</template><script>export default {name:"Son",props: {msg: {type: String,default: ''}}}
</script><style scoped>.son {width: 300px;height: 150px;line-height: 150px;background-color: pink;margin: 20px auto;}
</style>

父组件

<template><view class="index"><text class="text">父组件: {{msg}}</text> <Son :msg="msg"></Son></view>
</template><script>import Son from '../../components/Son.vue'export default {components: {Son},data() {return {msg: 'Hello, Son'}}}
</script><style lang="less" scoped>.index {width: 500px;height: 250px;text-align: center;background-color: skyblue;margin: 0 auto;}</style>

子传父(emit)

子组件

<template><view class="son">子组件: {{msg}}<button @click="sendMsg">发送信息给父组件</button></view>
</template><script>export default {name:"Son",data() {return {msg: 'Hello Father'}},methods: {sendMsg() {this.$emit('getMsg', this.msg)}}}
</script><style scoped>.son {width: 300px;height: 150px;line-height: 150px;background-color: pink;margin: 20px auto;}
</style>

父组件

<template><view class="index"><text class="text">父组件: 子组件发送的信息: {{msg}}</text> <Son @getMsg="getMsg"></Son></view>
</template><script>import Son from '../../components/Son.vue'export default {components: {Son},data() {return {msg: ''}},methods: {getMsg(msg) {this.msg = msg}}}
</script><style lang="less" scoped>.index {width: 500px;height: 250px;text-align: center;background-color: skyblue;margin: 0 auto;}</style>

uni-app开发和常规Vue开发相关推荐

  1. 最新仿网易优选APP商城源码+Vue开发全家桶

    正文: 最新仿网易优选APP商城源码+Vue开发全家桶,源码采用Vue全家桶+mintUI+axios技术栈开发,只写了前端,后端采用网易商场抓包接口,也可以二次修改成自己的接口. 安装方法: 1.将 ...

  2. Web前端开发技术:Vue开发基础(1)

    一.实验目的: 掌握Vue开发环境的搭建.开发和调试工具的使用以及Vue项目的创建. 掌握Vue实例的创建及数据的绑定.Vue的事件监听操作.Vue组件的注册及组件之间的数据传递的方法以及Vue生命周 ...

  3. 前后端开发bug:python+vue开发图片验证码接口时,刷新浏览器不显示图片验证码,点击以后才可以显示和切换

    现象: 刷新浏览器页面,图片验证码不显示,点击图片验证码区域以后,才能显示也可以切换显示下一个. 排查思路: 调用开发者工具,检查是否向后端发起获取图片验证码请求. 如果生成了图片uuid编号,发送了 ...

  4. php开发数独,用vue开发一个所谓的数独

    1.前言 最近的后台管理系统页面,功能暂时没有新的需求,就在想首页放什么东西,最近我想到的就是放个所谓的数独,为什么是所谓的数独,因为规则不同于标准的数独,只要求每一行每一列数字不一样就可以了!这个实 ...

  5. uni app页面跳转后,刷新页面参数丢失问题

    正常页面路由跳转地址应该是这样的:http://localhost:8080/#/pages/study/hiring?id=1393112968202870785 浏览器刷新之后就编程这样子:htt ...

  6. uni app 开发微信小程序及上线体验

    uni app 开发微信小程序及上线体验 项目创建及微信小程序AppId的申请 本次开发的是电商类的微信小程序,这里用到的是HBuilderX这个编辑器.之前用的Visual Studio Code ...

  7. 切换 uniapp_万能前端框架uni app初探03:底部导航开发

    前言 本节我们使用uni app的底部导航功能,点击不同tab会显示不同页面,这个功能在实际项目开发中几乎是必备的. 一.基础知识 1.tabBar 如果应用是一个多 tab 应用,可以通过 tabB ...

  8. 基于Vue开发的电商APP项目——蘑菇街app

    基于Vue开发的电商APP项目--蘑菇街 项目源码:https://github.com/Limna777/Shopmall.git 1.项目描述 2.使用的插件或第三方库 3.页面主要实现的功能 1 ...

  9. 使用vue开发APICloud软件APP的教程

    一.APICloud创建程序 1.APICloud后台创建应用 2.APICloud拉取代码,APICloud开发工具地址 APICloud开发工具PC端,先下载APICloud开发工具,打开开发工具 ...

  10. Vue项目——Vue开发掘金WebApp(仿掘金App)

    这里写自定义目录标题 正文 介绍 效果图 完成度 交互完成度 后续 正文 介绍 该项目是抄袭仿照掘金客户端使用Vue开发的WebApp.里面所有的API均来自官方Android.页面基本上和掘金App ...

最新文章

  1. 在Linux系统下安装gnuplot遇到的问题
  2. java new一个对象的过程中发生了什么
  3. php mysql 排序规则_php 数组排序以及按照某个字段排序
  4. jQuery进阶部分笔记
  5. Multi_thread--Linux下多线程编程互斥锁和条件变量的简单使用
  6. 测试SQLServer拆分字符串到临时表
  7. ansible批量安装服务器思路
  8. 利用EXP/IMP进行数据迁移,如何转换表空间操作(完整版)
  9. Coding and Paper Letter(四十八)
  10. python金额转换汉字为数字
  11. ASP.NET MVC入门
  12. oracle11g磁盘阵列 pdf,融会贯通 从Oracle11g到SQL Server2008 中文PDF版 16.7MB
  13. 超详细open vn搭建之Linux亲测可用
  14. 超级计算机排行榜历年,历代游戏主机浮点运算能力排行榜 究竟谁才是真正的性能怪兽...
  15. TypeError:‘bool’ oboject is not callable
  16. office365在线安装太慢,换离线安装终于搞定
  17. 恩智浦 i.MX8X BSP 的编译
  18. php虚拟主机搭建微信公众号服务器
  19. python面向对象2
  20. 前端开发者必备的 12 个工具

热门文章

  1. 群晖室开虚拟机安装于服务器,VMware Workstation安装群晖服务器
  2. [渝粤教育] 西南科技大学 机械设计基础 在线考试复习资料
  3. 【预测模型】基于粒子群算法优化最小二乘支持向量机lssvm实现预测附matlab源码
  4. WIN10不显示sql2005服务器,win10系统安装sQLserver2005提示“sQL server服务无法启动”的设置办法...
  5. vs2015调试iisexpress无法启动的问题解决方案整理
  6. python 制作抽奖箱_海安当地横幅制作值得推荐,抽奖箱制作-漫谈
  7. WebService专题(二)-WebService原理
  8. 机械制图之平面图形的尺寸分析
  9. 微软云服务器的优点,探寻:微软私有云的优势究竟是什么
  10. 浅谈JAVA工作流的优雅实现方式