hbuilder的获取头像以及位置

条件编译

// #ifndef VUE3
import Vue from 'vue'
import './uni.promisify.adaptor'
Vue.config.productionTip = false
App.mpType = 'app'
// 初始化vue应用
const app = new Vue({...App
})
// 挂载vue应用
app.$mount()
// #endif// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {const app = createSSRApp(App)return {app}
}
// #endif
  • #ifndef
  • #endif

官方链接

场景:一套代码兼容到各个平台,每个平台有差异。 就会出现这种情况: 有一段代码在某一个平台生效,其他平台就不生效

document.getElementById('test')

以上代码在h5能正常运行,但是在小程序中会报错.

应用

app.vue就是一个应用(小程序的壳子)。

注意: app.vue没有template,你写了也不会生效

  • style: 注入全局的样式
  • script:
    • 应用的生命周期

页面

通常页面放在pages下,一定要在pages.json中进行注册,才算是一个页面。

命名

pages- index- index.vue- homeA- homeA.vue- home-a- home-a.vue

创建

右键pages,创建页面,生成页面,并且能够把页面注册到pages.json中。

配置

在pages.json中的路由对每一个页面进行单独的配置。

官方文档

页面生命周期

官网地址

  • onLoad 同小程序的 类似与vue的created
    • 发起网络请求
    • 接收页面参数
  • onShow 、 onHide (类似于: keep-alive 包裹的组件多了两个生命周期: 失活,激活)
  • onPullDownRefresh: 下拉刷新
  • onReachBottom: 触底加载

页面也有vue的那一套生命周期,建议不要混着用,就用官网这一套

组件

分类

  • 内置的组件

    • uni-app帮我们写好的,直接使用即可
  • 第三方组件

    • ui框架的组件
  • 自己开发的组件

    • 引入 注册 使用
  • 全局的组件

    import ChildB from './components/ChildB/ChildB.vue'
    Vue.component('ChildB', ChildB)
    

    在main.js中进行注册

  • easyCom 组件

    • 链接

组件的生命周期

组件通信

  • 父子通信【给vue2完全相同】
  • 兄弟之间通信
    • 乱传 【有点变化】
    • vuex【同vue2】

乱传(vue2)

  • 初始化一个$bus,挂载vue的原型上

    Vue.protoType.$bus = new Vue()this.$bus
    
  • 发送方

    • 拿到$bus
    • b u s . bus. bus.emit(‘自定义事件的名字’, 发送的数据)
  • 接收方

    • 拿到$bus
    • b u s . bus. bus.on(‘自定义事件的名字’, 数据 => {})

uni-app的乱传

  • 发送方
    • uni.$emit(‘test’, ‘数据’)
  • 接收方
    • uni.$on(‘test’, data => { })

uni-app中集成vuex

  • 创建一个仓库

    • 创建store/index.js 在这里进行仓库的创建和配置
  • 配置仓库

    • 数据(state)

    • mutation

    • action

    • getters

    • modules

      // 创建一个仓库并导出   
      import vuex from 'vuex'
      import Vue from 'vue'// this.$store  
      Vue.use(vuex)// new 一个storeexport default new vuex.Store({strict: true,state: {name: 'uni-app',age: 24},mutations: {M_name(state, payload) {state.name = payload}}
      })
      
  • 将仓库注入到vue应用, main.js new Vue的使用给其配置一个store

    import store from './store'new Vue({...App,store
    })
    
  • 组件从仓库中获取值【计算属性】

    computed: {// name() {// 	return this.$store.state.name// },// age() {// 	return this.$store.state.age// }...mapState(['name', 'age'])
    },
    
  • 组件更改仓库中的值

    methods: {...mapMutations(['M_name']),changeName() {// 不要这样做,仓库中如果开启了严格模式,会报错// this.$store.state.name = '李四'// 提交一个mutation// this.$store.commit('M_name', '李四')this.M_name('李四')}
    }
    

应用:

App.vue。 没有template。 有自己的一套生命周期

页面

  • 在pages.json 下的 pages注册
  • 通常在pages下
  • 有两套生命周期
    • onLoad …
    • vue的那一套: created …
    • 注意点: 不要用vue的那一套

组件

  • easycom规范的组件

    • components/组件名称/组件名称.vue

      // 
      export default {
      name: '组件名称'
      }
      

      直接使用即可。

  • 生命周期(同vue2)

  • 通信方式

    • 子父(vue2)
    • 乱传(中央事件总线)
      • 比vue2更加的简单。
      • 缺点:不好维护。分散
    • vuex集中管理项目的数据(共享的数据)
      • 集中式管理数据。
      • 组件可以无视层级从仓库中获取数据
      • 仓库中数据发生变化,响应的组件更新

部分API介绍

定位

位置是一个比较敏感信息。手机

  • 授权,在manifest.json下mp-weixin

    "mp-weixin" : {"appid" : "wx3373d91b06ee348f","setting" : {"urlCheck" : false},"usingComponents" : true,"permission": {"scope.userLocation": {"desc": "你的位置信息将用于小程序位置接口的效果展示"}},"requiredPrivateInfos": ["getLocation"]}
    

这是头像获取
在这里插入图片描述
这是位置获取
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/59671.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp调查问卷评价功能

我本来用的是uniapp官方提供的组件uni-rate组件&#xff0c;但修改成我想要的样式有点麻烦&#xff0c;于是我就自己手写一个&#xff0c;比用组件简单一点&#xff1b; dom结构 <text class"formTit must">请您对本次活动进行评价</text> <view cl…

【Axure动态面板】利用动态面板实现树形菜单的制作

利用动态面板&#xff0c;简单制作高保真的树形菜单。 一、先看效果 https://1poppu.axshare.com 二、实现思路 1、菜单无非就是收缩和展开&#xff0c;动态面板有个非常好的属性&#xff1a;fit to content&#xff0c;这个属性的含义是&#xff1a;面板的大小可以根据内容多少…

Java课题笔记~ 使用 Spring 的事务注解管理事务(掌握)

通过Transactional 注解方式&#xff0c;可将事务织入到相应 public 方法中&#xff0c;实现事务管理。 Transactional 的所有可选属性如下所示&#xff1a; propagation&#xff1a;用于设置事务传播属性。该属性类型为 Propagation 枚举&#xff0c; 默认值为 Propagation.R…

2. 软件需求 面向对象分析

目录 1. 软件需求 1.1 需求分类 1.2 需求获取 1.3 需求分析 2. 面向对象分析&#xff08;OOA&#xff09; 2.1 统一建模语言 UML 2.2 用例模型 2.2.1 用例图的元素 2.2.2 识别参与者 2.2.3 合并需求获得用例 2.2.4 细化用例描述 2.3 分析模型 2.3.1 定义概念类 …

【MySQL系列】表约束的学习

「前言」文章内容大致是MySQL的表的约束。 「归属专栏」MySQL 「主页链接」个人主页 「笔者」枫叶先生(fy) 目录 一、MySQL表的约束1.1 空属性1.2 默认值&#xff08;default&#xff09;1.3 列描述&#xff08;comment&#xff09;1.4 zerofill1.5 主键&#xff08;primary ke…

element+vue 之动态form

1.页面部分 <div v-for"(item,index) in formList" :key"index"><el-col :span"6" v-if"item.inputType0"><el-form-item :label"item.conditionName" :prop"item.conditionCode":rules"{req…

我的2048创作纪念日

目录 一、来龙去脉二、2048天前的今天三、2048天的收获四、2048天后的今天五、祝福 一、来龙去脉 今天是 2023 年 8 月 9 日&#xff0c;在咖啡馆浏览我的 CSDN 主页时&#xff0c;看到官方发来了一则私信&#xff1a; 二、2048天前的今天 提示&#xff1a;可以和大家分享最初…

使用docker 搭建nginx + tomcat 集群

创建3个Tomcat容器&#xff0c;端口分别映射到 8080,8081,8082&#xff0c;使用数据卷挂载&#xff0c;分别将宿主机目录下的 /opt/module/docker/tomcat3/ROOT1/&#xff0c;/opt/module/docker/tomcat3/ROOT2/&#xff0c;/opt/module/docker/tomcat3/ROOT2/ 挂载到 容器内部…

Java从入门到精通(四)· 面向对象

Java从入门到精通&#xff08;四&#xff09; 面向对象 一 静态关键字&#xff08;static&#xff09; static表示静态关键字&#xff0c;可以用来修饰成员变量和成员方法。 被 static修饰的成员变量&#xff0c;称之为静态成员变量或者类变量&#xff0c;同理可得&#xff…

【个人记录】CentOS7 编译安装最新版本Git

说明 使用yum install git安装的git版本是1.8&#xff0c;并不是最新版本&#xff0c;使用gitlab-runner托管时候会拉项目失败&#xff0c;这里使用编译源码方式安装最新版本的git。 基础环境安装 echo "nameserver 8.8.8.8" >> /etc/resolv.conf curl -o /…

ArmSoM-W3之RK3588安装Qt+opencv+采集摄像头画面

1. 简介 场景&#xff1a;在RK3588上做qt开发工作 RK3588安装Qtopencv采集摄像头画面 2. 环境介绍 这里使用了OpenCV所带的库函数捕获摄像头的视频图像。 硬件环境&#xff1a; ArmSoM-RK3588开发板、&#xff08;MIPI-DSI&#xff09;摄像头 软件版本&#xff1a; OS&…

MYSQL进阶-事务的基础知识

1.什么是数据库事务&#xff1f; 就是把好几个sql语句打包成一个整体执行&#xff0c;要么全部成功&#xff0c;要么全部失败&#xff01;&#xff01;&#xff01; 事务是一个不可分割的数据库操作序列&#xff0c;也是数据库并发控制的基本单位&#xff0c;其执 行的结果必…