在分析一个项目的时候,发现项目中使用了一个组件,在 components 中没有找这个组件的注册位置,发现这是 uview-ui 中的组件
<view>
<u-notice-bar mode="horizontal" :list="noticeList">u-notice-bar>
view>
很明显,这里的 u-notice-bar 是一个组件,但是在 components 中并没有注册的语句,猜测是不是全局引入,或者是 easycom 模式自动引入了,按照 easycom 模式可以自动引入组件的命名规则中的 components/a/a.vue 来去找 u-notice-bar 还是没有找到
最终发现使用的是 uniapp 的 uview-ui 组件
uview-ui 是 uniapp 生态中的框架 uview官网链接
uni-app2018年初发布以来,一直蓬勃发展,一派欣欣向荣,社区也是人声鼎沸,众望所归。
因此,uView应运而生,uView的目标是成为uni-app生态最优秀的UI框架。
解决方案 : 关闭 HbuilderX 右键,以管理员身份运行
在项目的根目录中的 main.js 中,引入并使用 uView 的 JS 库 ,注意应当在 import Vue 之后
// main.js
import uView from 'uview-ui';
Vue.use(uView)
在项目根目录的 uni.scss中引入此文件.
错误引入
/** uni.scss 错误引入*/
@import url("uview-ui/theme.scss");
正确引入
/** uni.scss 错误引入*/
@import "uview-ui/theme.scss";
在 App.vue 中首行的位置引入,注意给 style 标签加入 lang='scss’属性
/*App.vue*/
在 pages.json 中配置 easycom 组件模式
// pages.json
{
"easycom": {
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
},
"pages": [....原有的内容],
"globalStyle": {....原有的内容},
........原有的内容
}
<template>
<view class="index">
<u-button >默认按钮u-button>
<u-button type="primary">主要按钮u-button>
<u-button type="success">成功按钮u-button>
<u-button type="info">信息按钮u-button>
<u-button type="warning">警告按钮u-button>
<u-button type="error">危险按钮u-button>
view>
template>
<u-icon name="level"></u-icon>