首页 > 其他分享 >uni-app基础内容 | uni-app

uni-app基础内容 | uni-app

时间:2022-10-01 11:34:56浏览次数:43  
标签:console log res app 内容 跳转 uni methods

uniapp 基础简要描述
  • 微信小程序调试配置

    安装HBuilderX
    需要安装、运行微信开发者工具
    Appid用以真机调试

  • 引入公共css

    uni.css

  • 引入自定图标

    iconfont.css

  • 引入css3动画库

    animate.css

  • 设置全局属性

    pages.json文件可以配置单独页面或者全局的功能组件样式
    pages.json中的globalStyle

    // page.json
    {
        "globalStyle": {
            "navigationBarTextStyle": "black", // 导航栏标题颜色
            "navigationBarTitleText": "uni-app", // 导航栏标题文字内容
            "navigationBarBackgroundColor": "#F8F8F8", // 导航背景色
            "backgroundColor": "#F8F8F8", // 窗口的背景色
            "enablePullDOwnRefresh": true, // 全局开启下拉
            "onReachBottomDistance": 50 // 设置下拉触底事件的距离
        }
    }
    
  • 底部导航的配置

    pages.json中的tabBar

    // page.json
    {
        "tabBar": {
            "color": "", // 字体颜色
            "selectedColor": "", // 选中颜色
            "backgroundColor": "", // 背景色
            "borderStyle": "", // 边框颜色
            "list": [
                {
                    "pagePath": "", "", // 页面路径
                    "text": "", // 按钮文字
                    "iconPath": "", // 图标路径 40kb 80px*80px
                    "selectedIconPath": "" // 选中的icon图片路径
                }
            ], // 选项
            "position": "" // 底部、头部
        }
    }
    
  • condition

    开发过程中有用,没有入口位置,起到直达的效果,开发者工具会多一个详情页选项

    {
        "condition": {
            "current": 0, // 当前索引
            "list": [
                {
                    "name": "详情页", // 名称
                    "path": "pages/detail/detail", // 启动路径
                    "query": "id=80" // 参数
                }
            ]
        }
    }
    
  • view、text组件和动画使用

    • view视图容器

      块元素

      hover-class // 按下的样式
      hover-stop-propagation // 阻止点击态冒泡
      hover-start-time // 多久后出现
      hover-stay-time // 保持多长时间
      
    • text

      行内元素
      支持 \n 换行

      selectable // 是否可选
      space // 是否显示连续空格 ensp 中文字符一半大小 emsp 中文字符空格大小 nbsp 英文字符空格大小
      decode // 是否解码
      
  • button

    size: default mini
    type: default primary warning
    plain: 镂空的按钮
    disabled: 禁用
    loading: 加载中
    
  • image

    src: 图片路径 默认大小 300px 225px
    mode: apspectFit 长边完全显示,完整显示 apspectFill 短边完全显示,长边截取 
    
  • uni-app的样式

    • rpx 响应式px 750宽为基准满屏
    • @import 外联样式表
  • iconfont 字体图标的引入

    @import url("./static/fonts/iconfont.css");
    
  • 引入scss

    插件中下载scss/sass编译

  • 数据绑定

  • 条件渲染

  • 列表渲染

  • 绑定事件/自定义事件与触发

  • 监听属性

  • 计算属性

  • uni的生命周期

    onLaunch 小程序启动后渲染完成触发
    onShow 显示触发
    onHide 隐藏触发
    onError 错误触发
    

    页面的生命周期

    onLoad 页面加载
    onShow 页面显示
    onReady 初次渲染完成
    onUnload 页面卸载
    onPullDownRefresh 触发下拉刷新动作(uni.stopPullDownRefresh()在请求到结果后调用)
    onReachBottom 页面触底事件 (onReachBottomDistance: 200 pages.json设置下拉触底距离)
    
  • 网络请求

    // uni.request(OBJECT)
    methods: {
        get() {
            uni.request({
                url: "", 
                success: (res) {
                    console.log(res);
                }
            })
        }
    }
    
  • 本地数据缓存

    • uni.setStorage

      uni.setStorage({
          key: 'name',
          data: 'mkl',
          success () {
              console.log('设置成功');
          }
      })
      
    • uni.setStorageSync

      同步接口

    • uni.getStorage

      uni.getStorage({
          key: 'name',
          success (res) {
              console.log('获取成功');
              console.log(res);
          }
      })
      
    • uni.getStorageSync

    • uni.removeStorage

    • uni.removeStorageSync

  • 图片上传与预览

    • uni.chooseImage实现文件上传

      页面端无法用count限制选择图片数

      <template>
          <view>
              <button type="primary" @click="chooseImg">上传文件</button>
          </view>
      </template>
      <script>
      export default {
          data(){
              return {
                  imgArr: []
              }
          }
          methods: {
              chooseImg: () => {
                  uni.chooseImage({
                      count: 1,
                      success(res) {
                          console.log(res);
                          this.imgArr = res.tempFilePaths;
                      }
                  })
              }
          }
      }
      </script>
      
    • uni.previewImage实现图片预览

      <template>
          <view>
              <button type="primary" @click="chooseImg">上传文件</button>
              <image v-for="item in imgArr" :src="item" @click="previewImg(item)"></image>
          </view>
      </template>
      <script>
      export default {
          data(){
              return {
                  imgArr: []
              }
          }
          methods: {
              chooseImg: () => {
                  uni.chooseImage({
                      count: 1,
                      success(res) {
                          console.log(res);
                          this.imgArr = res.tempFilePaths;
                      }
                  })
              },
              previewImg: (current) => {
                  uni.previewImage({
                      current,
                      urls: imgArr,
                      loop: true, // 图片可循环展示 仅在app使用
                      indicator: default // 底部显示原点 仅在app使用
                  })
              }
          }
      }
      </script>
      
  • 跨端兼容 条件注释

    • 组件条件注释
      <!-- #ifdef H5 -->
          仅在H5可见
      <-- #endif -->
      
      <!-- #ifdef MP-WEIXIN -->
          仅在微信小程序可见
      <-- #endif -->
      
    • api条件注释
      <script>
      onLoad () {
          // ifdef H5
          console.log('H5中打印');
          // endif
          
          // ifdef MP-WEIXIN
          console.log('微信小程序中打印');
          // endif
      }
      </script>
      
  • 导航跳转与传参

    • 声明式导航跳转

      open-type指定跳转页面的类型

      <navigator url="/pages/detail/detail">
      跳转至详情页
      </navigator>
      <navigator url="/pages/message/message" open-type='switchTab'>
      跳转至信息页页
      </navigator>
      <navigator url="/pages/detail/detail" open-type='redirect'> <!-- 没有返回箭头,因为关闭的当前页面 -->
      跳转至详情页
      </navigator>
      
    • 编程式导航跳转

      uni.navigateTo 保留当前页跳转

      methods: {
          goDetail () {
              uni.navigateTo({
                  url: 'pages/detail/detail'
              })
          }
      }
      

      uni.switchTab 关闭所有非tabBar页面跳转至tabBar页面

      methods: {
          geMessage () {
              uni.switchTab({
                  url: 'pages/detail/detail'
              })
          }
      }
      

      uni.redirectTo 关闭当前页跳转

      methods: {
          goDetail () {
              uni.redirectTo({
                  url: 'pages/detail/detail'
              })
          }
      }
      
    • 导航跳转传参

      <navigator url="/pages/detail/detail?id=1">
      

      接收参数 onl oad(options){}

      <script>
      export default {
          onl oad(options) {
              console.log(options);
          }
      }
      </script>
      
  • 组件和组件生命周期函数、通信方式

    • 生命周期函数

      created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed

    • 通信方式

      • 父传子

        <!-- 父 -->
        <component-name :title=title></component-name>
        
        <!-- 子 -->
        props: ['title']
        
      • 子传父

        <!-- 子 -->
        <button @click="sendN" @myEven="getN"></button>
        
        methods: {
            sendN: () => {
                console.log(1)
                this.$emit('myEven', 'data') // 触发父组件方法,传递参数
            }
        }
        
        <!-- 父 -->
        methods: {
            getN: (data) => { // 父组件方法
                console.log(data)
            }
        }
        
      • 兄弟传值

        import testA from '../../components/a.vue'
        import testA from '../../components/b.vue'
        <!-- 父组件 -->
        components: {
            "test-a": testA,
            "test-b": testB
        }
        
        <!-- 子组件a -->
        <button @click="addN">修改B组件数据</button>
        
        methods: {
            addN: () => {
                uni.$emit('updateN', 10)
            }
        }
        
        <!-- 子组件b -->
        created () {
            uni.$on('updateN',  (d) => { // 注册全局事件
                this.n += d
            })
        }
        
        
  • uni-ui组件库

标签:console,log,res,app,内容,跳转,uni,methods
From: https://www.cnblogs.com/miaokela/p/16746961.html

相关文章