跌跌撞撞从新手写UniAPP(二):引入UI框架

1,374 阅读3分钟

大家好,我是前端SkyRain,一个大重量级别的前端工程师(240+)。

听我们前端老大(据说是uniApp第一波开发者)说,uniApp项目在引入uView框架和其他第三方UI框架的情况有很多不同。我当时一听这话,这不是巧了嘛!!!

既然有不同,那就说明坑不少。这二百多斤的体格子,啥坑都得给它平了喽。所以咱们选择了uView框架和elementUI为代表,看看具体哪里不同。

引入uView框架

uView介绍

官方文档地址在此: uView框架官方文档

uView是uni-app生态专用的UI框架,其目标是成为uni-app生态最优秀的UI框架

uView安装

不愧是官方文档!在安装页面给了四种情况的安装方式。结果后来细看一遍,算是打脸了

两种是示例项目,另外两种才是安装方式:下载安装和npm安装。感觉这可能也就是上文所说的uView和elementUI在安装时候不同的原因吧

下载安装

其实文档上已经写的很明白了,但是作为新手还是写的更清楚些为好。

  • 在安装方式的下方有一个下载地址,链接如下。uView UI插件

实际上这是一个以uniApp插件形式存在的uView框架项目。点击链接跳转到插件市场中该插件的详细信息页面,可以选择使用HuilderX导入插件和下载插件ZIP两种方式,这里选择了导入插件。

QQ图片20211024113708.png

点击之后会出一个弹窗,依照下图选择

QQ图片20211024113841.png

点击之后会在HBuilderX中出现下图弹窗,点击创建,把插件项目下载下来

QQ图片20211024114008.png

这就是下载完毕的样子。再按照文档描述,将下载好项目根目录下的uview-ui文件夹复制到自己项目的根目录下。 QQ图片20211024114205.png 至此,uView框架下载完毕,但还需要经过配置才能正常使用。

uView配置

按照官方文档所给地址,进入到下载安装方式配置页面,地址如下: 下载安装方式配置

**注意点:**uView框架依赖scss,安装scss插件过程与之前安装uView框架方式较为相似。先在插件市场搜索 scss/sass编译 ,之后点击进入详情,选择使用HBuilderX导入插件,等待安装完毕即可。

  • 在项目根目录中的main.js中,引入并使用uView的JS库,注意这两行要放在import Vue之后。
// main.js
import uView from "uview-ui";
Vue.use(uView);

但实际上main.js里代码不只有这些,最新版的代码里包含了对vue3的支持。

所以main.js里内容是这样:

import App from './App'

// #ifndef VUE3
import Vue from 'vue'
import uView from "uview-ui";
Vue.use(uView);
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
    ...App
})
app.$mount()
// #endif

...
  • 在项目根目录的uni.scss中引入此文件。

这里把代码放到最后样一行即可。

/* 文章场景相关 */
...

@import 'uview-ui/theme.scss';
  • App.vue首行的位置引入,注意给style标签加入lang="scss"属性

我自己是新建一个style标签,单独存放,避免混淆。

<style lang="scss">
  /* 注意要写在第一行,同时给style标签加入lang="scss"属性 */
  @import "uview-ui/index.scss";
</style>
<style>
  /*每个页面公共css */
</style>
  • 在项目根目录的pages.json中配置easycom组件模式
// pages.json
{
  "easycom": {
    "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
  },
  
  // 此为本身已有的内容
  "pages": [
    // ......
  ]
}

只有重新启动下项目就完成了

uView测试

安装完毕之后,选择一个组件进行测试,看是否正确引入成功

// pages/index/index.vue
<view class="content">
  <u-button type="success">成功按钮</u-button>
</view>

QQ图片20211024120632.png

引入成功!!!

引入elementUI框架

因为没有了解过,所以只能各种百度,前前后后试了四五次才找到正确又简便的版本。

安装elementui

安装的命令,应该都比较熟悉。但这里主要说的是步骤。

因为我最开始压根没找到命令行在哪儿???居然藏在了右键菜单里。

选中项目根目录,右键→使用命令行窗口打开所在目录。之后执行命令:

npm i element-ui -S

配置element-ui

  • 在项目根目录下创建element文件夹,并在里面新建index.js。目的是在其中导入我们需要的组件,这个方法就包含了按需引入的优点。
// index.js
import 'element-ui/lib/theme-chalk/index.css';

import {Button,Icon} from 'element-ui';
const elements = {
  install: function (Vue) {
  Vue.use(Button)
    Vue.use(Icon)
  }
}
export default elements
  • 在main.js中引入
import App from './App'

// #ifndef VUE3
import Vue from 'vue'

import ElementUI from 'element-ui'
import element from './element/index'
Vue.use(ElementUI)

Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
    ...App
})
app.$mount()
// #endif

之后重启项目,准备进行测试!

配置测试

一样是选择了button组件进行测试。

<view class="content">
  <el-button type="primary">成功按钮</el-button>
</view>

QQ图片20211024123024.png