网站首页 > 技术文章 正文
uni-app 项目中,页面有两种:.vue 和 .nvue 文件。两者差异在于 .vue 文件使用 webview 进行渲染,.nvue 会使用原生进行渲染。
一个页面就是一个符合 vue 的单文件组件(SFC)规范的 .vue 或 .nvue 文件。
页面文件为实现多端兼容,综合编译速度、运行性能等因素,依旧遵循 vue 单文件组件规范。
组件特点:
- 组件是视图层的基本组成单元。
- 组件是一个单独且可复用的功能模块的封装。
每个组件,包括如下几个部分:以组件名称为标记的开始标签和结束标签、组件内容、组件属性、组件属性值。
- 组件名称由尖括号包裹,称为标签,它有开始标签和结束标签。结束标签的<后面用/来表示结束。结束标签也称为闭合标签。如下面示例的<component-name>是开始标签,</component-name>是结束标签。
- 在开始标签和结束标签之间,称为组件内容。如下面示例的content
- 开始标签上可以写属性,属性可以有多个,多个属性之间用空格分割。如下面示例的property1和property2。注意闭合标签上不能写属性。
- 每个属性通过=赋值。如下面的示例中,属性property1的值被设为字符串value。
uni-app 支持的组件分为:
- vue 组件。支持 vue SFC 规范
- 小程序自定义组件。组件规范不是 vue 规范,而是小程序规范。
日常开发来讲,推荐使用vue组件。uni-app支持小程序组件主要是为了兼容更多生态资源。
什么是 vue SFC 规范?
我们开发的时候创建的 .vue 文件,用于表示一个单一组件。SFC 的全拼为 Single-File-Components,翻译为中文就是单文件组件。
一个完整的单文件组件,顶级标签有 template、script、style,还可以允许添加可选的自定义块:
<template>
<view class="content">
组件内容
</view>
</template>
<script setup lang="ts">
import { ref } from 'vue'
const title = ref('Hello')
</script>
<style>
/* 样式设置 */
</style>
<custom1>
This could be e.g. documentation for the component.
</custom1>
vue-loader 会解析文件,提取每个语言块。能够支持使用非默认语言,如 css 预处理器,通过设置语言块的 lang 属性,如:
<style lang="sass">
/* write Sass! */
</style>
Vue3 一大特点:能够更好地支持 typeScript ,因此:
<script setup lang="ts">
import { ref } from 'vue'
const title = ref('Hello')
</script>
setup 是 vue3 的语法糖,使用 setup 可以自动导出定义的变量和方法。
模板<template>
- template 里面包含该组件的 html 结构,可以在该组件内使用其他组件,如果使用 setup 语法糖,导入的组件无需注册可以直接使用,如果不使用 setup 语法糖,就需要在 components 内注册组件。
- 每个 .vue 只能有一个匿名的 template 标签,插槽处使用的 template 需要加 v-slot 。
- 不同于 vue2 template 标签内可以放多个根标签。
脚本<script>
- 不同于 vue2 ,每个 .vue 文件,可以有多个 script ,但是必须保证使用语法一致,不可以一个 js,一个是 ts 。
- vue3 中可以使用选项式 API,也可以使用组合式 API 。
- vue3 新增 setup 语法糖,可以大大简化代码。
样式<style>
- 默认匹配的是 .css ,也可以通过 lang 指定扩展类型 。
- 一个 .vue 文件可以包含多个 style 标签,可以设置不同的 lang 属性。
- style 标签可以有 scoped 或 module 属性。
自定义块
可以在 .vue 文件中添加额外的自定义块来实现项目的特定需求,例如 <docs> 块。vue-loader 将会使用标签名来查找对应的 webpack loader 来应用在对应地块上。webpack loader 需要在 vue-loader 的选项 loaders 中指定。
小程序组件有哪些?
- 视图容器:view、scroll-view、swiper、match-media、cover-image 等
- 基础内容:icon、text、rich-text、progress
- 表单组件:button、checkbox、editor、from、input、picker、switch、textarea、label、radio等
- 页面路由跳转:navigator
- 媒体组件:audio、camera、image、video、live-player、live-pusher
- 地图组件:map
- 画布:canvas
- webview :web-view
- 广告:ad、ad-draw
- 页面属性配置:custom-tab-bar、navigation-bar、page-meta
前端同学基本没有没开发过小程序的,简单介绍下,就不详细介绍具体用法了。
- 上一篇: 不使用任何后端代码可以开发应用程序吗?
- 下一篇: APP的充值提现页面,要让用户无感操作才叫好。
猜你喜欢
- 2024-12-26 最新CRMEB商城多商户java版源码v1.6版本+前端uniapp
- 2024-12-26 React NextJS App Router 实时获取API
- 2024-12-26 六、uni-app + vue3 + ts + vite 响应式原理
- 2024-12-26 一个人生活必须要知道的几款App,告别空虚寂寞冷
- 2024-12-26 看看汽车充电app界面的设计,是不是一场创意盛宴
- 2024-12-26 印度欧美APP商城前端源码下载/多店铺PHP商城源码下载
- 2024-12-26 基于vue.js+uniapp后台管理系统uni-uadmin
- 2024-12-26 基于 vue.js 可视化拖拽低代码VisualDrag
- 2024-12-26 想积累实战经验吗?前端教程_ReactNative项目之美食App不容错过
- 2024-12-26 一、Uni-app + Vue3 + TS +Vite 创建项目步骤
你 发表评论:
欢迎- 494℃几个Oracle空值处理函数 oracle处理null值的函数
- 489℃Oracle分析函数之Lag和Lead()使用
- 488℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 475℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 469℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 464℃【数据统计分析】详解Oracle分组函数之CUBE
- 448℃Oracle有哪些常见的函数? oracle中常用的函数
- 442℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 最近发表
-
- Spring Boot跨域难题终结者:3种方案,从此告别CORS噩梦!
- 京东大佬问我,SpringBoot为什么会出现跨域问题?如何解决?
- 在 Spring Boot3 中轻松解决接口跨域访问问题
- 最常见五种跨域解决方案(常见跨域及其解决方案)
- Java Web开发中优雅应对跨域问题(java跨域问题解决办法)
- Spring Boot解决跨域最全指南:从入门到放弃?不,到根治!
- Spring Boot跨域问题终极解决方案:3种方案彻底告别CORS错误
- Spring Cloud 轻松解决跨域,别再乱用了
- Github 太狠了,居然把 "master" 干掉了
- IntelliJ IDEA 调试 Java 8,实在太香了
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)