uni-app学习day05-uView的使用以及环境变量的配置

372 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第28天,点击查看活动详情

本文主要介绍一下uniapp中uview的使用以及uniapp中环境变量的配置,下一篇会介绍uniapp中自定义tabbar的封装

uview的配置

1. 下载uview压缩包或者导入

uview地址

image.png 有两种方式,一:直接导入 二:下载后放在根目录下

image.png

2.在main.js文件中注册uView

注意在引入Vue之后

image.png

import uView from 'uview-ui';
Vue.use(uView);

3. 在App.vue中导入全局样式

放在第一行,下面可以自定义全局都会用到的样式 image.png

@import "uview-ui/index.scss"

4. uni.scss文件中导入主题文件

image.png

@import 'uview-ui/theme.scss';

5. 打开pages.json文件使用easycom注册

"easycom": {
  "autoscan": true,
  "custom": {
     "^u-(.*)": "@/uni_modules/uview-ui/components/u-$1/u-$1.vue",
  }
},

6. uview不需要像小程序那样使用组件时候引入,直接用就可以了。

环境变量的配置

方式1- .env

CLI 创建的项目中可以在根目录中放置 .env 文件来指定环境变量 项目根目录中放置下列文件来指定环境变量

.env                # 在所有的环境中被载入
.env.local          # 在所有的环境中被载入
.env.[mode]         # 只在指定的模式中被载入
.env.[mode].local   # 只在指定的模式中被载入

一个环境文件只包含环境变量的“键=值”对

FOO = bar
VUE_APP_NOT_SECRET_CODE = some_value

只有 NODE_ENVBASE_URL 和以 VUE_APP_ 开头的变量可以通过 webpack.DefinePlugin 静态地嵌入到客户端的代码中,这样可以在代码中使用他们,例如 process.env.VUE_APP_SECRET

  • NODE_ENV - 的枚举值是 "development"(开发模式)、"production"(正式环境) 、 "test" (测试环境)中的一个。具体的值取决于应用运行的模式。
  • BASE_URL - 和 vue.config.js 中的 publicPath 是一致的,是我们的应用用到的基础路径。

方式2-package.json

在自定义条件编译平台时,可以在 package.json 文件的 env 节点下配置环境变量

{"uni-app": {// 扩展配置
    "scripts": {
        "custom-platform": { // 自定义编译平台配置,可通过cli方式调用
            "title":"自定义扩展名称", // 在HBuilderX中会显示在 运行/发行 菜单中
            "browser":"",  // 运行到的目标浏览器,仅当UNI_PLATFORM为h5时有效
            "env": {//环 境变量
                "UNI_PLATFORM": "",  // 基准平台
                "MY_TEST": "", // ... 其他自定义环境变量
             },
            "define": { // 自定义条件编译
                "CUSTOM-CONST": true // 自定义条件编译常量,建议为大写
            }
        }
    }    
}}

方式3-vue-config.js

配置环境变量process.env

const webpack = require('webpack')
module.exports = {
  chainWebpack: config => {
    config
      .plugin('define')
      .tap(args => {
        args[0]['process.env'].VUE_APP_TEST = '"test"'
        return args
      })
  }
}