uniapp 初始学习1

uni-app代码基本包括js,vue,css.在app端支持原生渲染nvue,可编译的kotlin和swift

掌握js就可以进行不同应用的开发

页面文件遵循 Vue 单文件组件 (SFC) 规范,即每个页面是一个.vue文件

.vue文件是一个自定义的文件类型,用类HTML语法描述一个VUE组件

.vue文件包含三种类型的顶级语言块<template> <script> <style>

vue-loader可以解析文件,提取每个语言块,用loader处理,奖他们组成一个ESMoudle 默认导出一个vue.js组件选项对象

vue-loaderloader 在计算机科学和软件开发领域有各自的含义和用途。

vue-loader

定义

vue-loader是一个webpack的加载器(loader),主要用于将Vue组件的单文件(.vue文件)转换为JavaScript模块。这个过程中,它会解析.vue文件,分离出其中的模板(template)、脚本(script)和样式(style),并将它们分别交给webpack和相关loader进行处理。

特性和用途

  • 编译模板:vue-loader能够处理.vue文件中的HTML模板,将其转换为可执行的JavaScript代码。
  • 处理样式:它支持使用CSS预处理器(如Less、Sass)来处理样式,并允许使用scoped CSS来避免样式冲突。
  • 热重载:在开发过程中,vue-loader支持组件的热重载,即在不刷新页面的情况下更新组件的修改。
  • 模块化:支持使用ES2015(ES6)及更高版本的模块语法来导入和导出Vue组件。

总结:vue-loader是Vue.js开发中不可或缺的工具,它极大地简化了Vue组件的开发和构建过程,使得开发者能够更加专注于业务逻辑的实现。


loader

定义

在计算机科学和软件开发中,loader通常指的是一个程序或模块,它负责在运行时或编译时加载和准备其他程序或数据以供使用。在不同的上下文中,loader可能有不同的具体实现和用途。

  • 在操作系统中,loader可能指的是负责加载操作系统或应用程序到内存中的程序。
  • 在Web开发中,特别是在使用webpack这样的模块打包工具时,loader指的是一种用于处理特定类型文件的脚本。这些脚本会在webpack的打包过程中被调用,用于将文件转换为模块,以便webpack可以进一步处理它们。

webpack中的loader

  • webpack是一个现代JavaScript应用程序的静态模块打包器(module bundler)。在webpack中,loader是处理模块内某个文件的预处理器。loader可以将文件从不同的语言(如TypeScript、CoffeeScript)转换为JavaScript,或将内联图像转换为DataURL。loader甚至允许你直接在JavaScript模块中import CSS文件!

样式

  • 默认匹配:/\.css$/

  • 一个 .vue 文件可以包含多个 <style> 标签。

  • <style> 标签可以有 scoped 或者 module 属性 (查看 scoped CSSCSS Modules) 以帮助你将样式封装到当前组件。具有不同封装模式的多个 <style> 标签可以在同一个组件中混合使用。

  • 任何匹配 .css 文件 (或通过它的 lang 特性指定的扩展名) 的 webpack 规则都将会运用到这个 <style> 块的内容中。


在Vue.js中,<style> 标签可以拥有 scoped 属性,但标准的HTML和CSS并不支持 module 属性直接用于 <style> 标签。不过,Vue.js 提供了一个类似于模块作用域样式的功能,通过单文件组件(.vue 文件)和特定的loader(如vue-loader)来实现,这通常被称为 CSS Modules。

scoped 属性

  • 作用scoped 属性是Vue.js特有的,用于确保样式只应用于当前组件的元素。Vue.js通过给组件的元素添加唯一的数据属性(如 data-v-xxxx),并在CSS选择器中添加对应的属性选择器,来实现样式的局部作用域。
  • 使用场景 :当你想要确保组件的样式不会影响到全局或其他组件时,scoped 属性非常有用。

CSS Modules

  • 实现方式 :虽然Vue.js本身不直接在 <style> 标签上提供 module 属性,但你可以通过配置vue-loader来启用CSS Modules。这通常涉及到在 <style> 标签中添加一个特殊的 module 属性(虽然这不是HTML的一部分,但vue-loader会识别并处理它),或者简单地通过在 .vue 文件中配置vue-loader来自动启用CSS Modules,而不需要在 <style> 标签中添加任何特殊属性。
  • 作用:CSS Modules 提供了一种将CSS类名映射到唯一标识符的方法,从而避免了全局命名冲突。每个类名都会映射到一个唯一的哈希值,这个哈希值被用作实际的类名。在JavaScript中,你可以通过导入的样式对象来访问这些映射后的类名。
  • 使用场景:当你想要更细粒度地控制CSS的作用域,或者当你想要在JavaScript中动态引用样式类名时,CSS Modules非常有用。

总结

  • Vue.js的 <style> 标签支持 scoped 属性以实现样式的局部作用域。
  • CSS Modules功能不是通过直接在 <style> 标签上添加 module 属性来实现的,而是通过vue-loader的配置来启用的。
  • 你可以根据项目的具体需求选择使用 scoped 样式或CSS Modules,或者两者结合使用。
相关推荐
2501_915106321 小时前
App HTTPS 抓包 工程化排查与工具组合实战
网络协议·ios·小程序·https·uni-app·php·iphone
dcloud_jibinbin2 小时前
【uniapp】小程序体积优化,分包异步化
前端·vue.js·webpack·性能优化·微信小程序·uni-app
2501_916008893 小时前
金融类 App 加密加固方法,多工具组合的工程化实践(金融级别/IPA 加固/无源码落地/Ipa Guard + 流水线)
android·ios·金融·小程序·uni-app·iphone·webview
2501_915921433 小时前
Fastlane 结合 开心上架(Appuploader)命令行版本实现跨平台上传发布 iOS App 免 Mac 自动化上架实战全解析
android·macos·ios·小程序·uni-app·自动化·iphone
游戏开发爱好者85 小时前
iOS 上架要求全解析,App Store 审核标准、开发者准备事项与开心上架(Appuploader)跨平台免 Mac 实战指南
android·macos·ios·小程序·uni-app·iphone·webview
00后程序员张6 小时前
混淆 iOS 类名与变量名的实战指南,多工具组合把混淆做成工程能力(混淆 iOS 类名变量名/IPA 成品混淆Ipa/Guard CLI 实操)
android·ios·小程序·https·uni-app·iphone·webview
2501_916007479 小时前
iOS文件管理工具深度剖析,从系统沙盒到跨平台文件操作的多工具协同实践
android·macos·ios·小程序·uni-app·cocoa·iphone
shykevin10 小时前
uni-app x开发商城系统,扩展组件uni-ui实现底部商品导航
uni-app
QuantumLeap丶10 小时前
《uni-app跨平台开发完全指南》- 05 - 基础组件使用
vue.js·微信小程序·uni-app
2501_9159184111 小时前
Flutter 加固方案对比与实战,多工具组合的跨平台安全体系(Flutter App 加固/IPA 成品混淆/Ipa Guard CLI/自动化安全流程)
安全·flutter·ios·小程序·uni-app·自动化·iphone