当前位置:网站首页>uni-app:关于自定义组件、easycom规范、uni_modules等问题
uni-app:关于自定义组件、easycom规范、uni_modules等问题
2022-07-30 05:41:00 【前端小白jyj】
1. 结论:使用uni-app框架时,如何创建自定义组件?
官方推荐新建符合easycom规范的组件,不推荐手动引入组件。方法:
1.根目录下新建components目录,右键新建组件,然后在对应的组件名称/组件名称.vue
文件里编写代码
。
2.根目录下新建uni_modules目录(选择uni ui项目模板,会自动生成uni_modules目录),右键新建uni_modules插件,然后在对应的components/组件名称/组件名称.vue
文件里编写代码
。
2. 前置:
官方推荐在HBuilderX新建项目时,直接选择uni ui项目模板,然后在代码里直接敲u,所有组件都拉出来,不用引用、不用注册,直接就用。
这时项目目录下会有一个uni_modules文件夹,即是存放uni ui插件的文件夹。
为什么这些组件不用引用、不用注册,直接就能用?因为有easycom。
传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。uni-app的easycom
将其精简为一步。
3. easycom组件规范:
只要组件安装在项目的components目录下或uni_modules
目录下,并符合components/组件名称/组件名称.vue
目录结构。就可以不用引用、注册,直接在页面中使用。
注意:并不是必须在项目的components目录新建自定义组件,也可以在uni_modules
目录下新建自定义uni_modules
插件,然后在对应的components/组件名称/组件名称.vue
文件里编写代码。
easycom
是自动开启的,不需要手动开启。有需求时可以在pages.json
的easycom
节点进行个性化设置,如关闭自动扫描,或自定义扫描匹配组件的策略。
如果你的组件名称或路径不符合easycom的默认规范,可以在pages.json
的easycom
节点进行个性化设置,自定义匹配组件的策略
4. 说明
easycom
方式引入的组件无需在页面内import
,也不需要在components
内声明,即可在任意页面使用easycom
方式引入组件不是全局引入,而是局部引入。例如在H5端只有加载相应页面才会加载使用的组件- 在组件名完全一致的情况下,
easycom
引入的优先级低于手动引入(区分连字符形式与驼峰形式) - 考虑到编译速度,直接在
pages.json
内修改easycom
不会触发重新编译,需要改动页面内容触发。 easycom
只处理vue组件,不处理小程序专用组件(如微信的wxml格式组件)。不处理后缀为.nvue的组件。但vue组件也可以全端运行,包括小程序和app-nvue。可以参考uni ui,使用vue后缀,同时兼容nvue页面。nvue
页面里引用.vue
后缀的组件,会按照nvue方式使用原生渲染,其中不支持的css会被忽略掉。这种情况同样支持easycom。
5.相关官方文档:
uni-app官网https://uniapp.dcloud.io/collocation/pages.html#easycom组件使用的入门教程 | uni-app官网
https://uniapp.dcloud.io/component/#uni-module%E8%A7%84%E8%8C%83
uni_modules | uni-app官网https://uniapp.dcloud.io/plugin/uni_modules.html
边栏推荐
猜你喜欢
用h1~h5标题时候,但是如果不要加粗的效果,处理方法如下
240.搜索二维矩阵II
零基础C语言“函数”教程,有手就行
Anaconda安装教程
Navicat connection MySQL error: 1045 - Access denied for user 'root'@'localhost' (using password YES)
你怎么看待scanf()中%d的“吃空白”行为?
How is crawler data collected and organized?
三子棋游戏实现(c语言)
ezTrack-master使用教程
中间件cors三行代码解决跨域问题GET,POST跨域访问解决
随机推荐
Record Breaker (Google Kickstart2020 Round D Problem A)
MySQL 有这一篇就够(呕心狂敲37k字,只为博君一点赞!!!)
函数解剖——深挖printf()与scanf()
字符串(一) 哈希
numpy中np.inf函数的用法讲解
What is SOA (Service Oriented Architecture)?
G Bus Count (Google Kickstart2014 Round D Problem B) (DAY 89)
net start mysql MySQL service is starting. MySQL service failed to start.The service did not report any errors.
技术人该访问的论坛
union中有struct的情况-从内存分析
Qt实现一个重复文件检测小工具(原理:通过md5校验)
使用Nodejs搭建Web Server(入门教程)
Graphic mirror symmetry (schematic diagram)
Navicat cannot connect to mysql super detailed processing method
Countdown (Source: Google Kickstart2020 Round C Problem A) (DAY 88)
Qt在QTableWidget、View等表格中添加右击菜单
Qt通过QSttings类读取*.ini配置文件
互斥量解决线程同步问题
np.argsort()函数详细解析
839. Simulated heap