weex-style-loader: 给你熟悉的style开发体验

使用weex开发了两个项目,感受到了其跨平台动态性的强大;另一最直接的感受就是,作为一名前端,不能像平常那样编写css ,要不定义内联style,要不定义single-class selector,绞尽脑汁去给每个标签起className

像这样

<style>
  .mod-app-entry {
    ...
  }
  .entry-item {
    ...
  }
  .entry-img {
    ...
  }
  .entry-txt {
    ...
  }
</style>
<template>
  <div class="mod-app-entry">
    <a class="entry-item" repeat="{{list}}" href="{{jumpUrl}}">
      <image class="entry-img" src="{{imgUrl}}"></image>
      <text class="entry-txt">{{title}}</text>
    </a>
  </div>
</template>

作为前端,这样子臣妾做不到

笔者更希望能跟熟悉的味道一样

  • 使用任意选择器,元素选择器、组合选择器;
  • 使用继承

像这样

<style>
  .mod-app-entry {
    /定义全局样式/
    color: #999;
    font-size: 24;
  }
  a {
    ...
  }
  image {
    ...
  }
  .mod-app-entry text {
    /覆盖color:#999,继承font-size:24/
    color: #f00;
    text-align: center;
  }
</style>
<template>
  <div class="mod-app-entry">
    <a repeat="{{item in list}}" href="{{item.pluginUrl}}">
      <image src="{{item.imgUrl}}"></image>
      <text>{{item.title}}</text>
    </a>
  </div>
</template>

味道还是熟悉的好,可是该怎么做呢?

幸好,weex提供的weex-loader支持webpack打包,于是并有了编写weex-style-loader的想法

将我们平常编写的 style 转换成single class selecor style,这样就可以愉快地开发weex

使用

安装loader

tnpm install @ali/weex-style-loader --save-dev

配合weex-tookit脚手架,在webpack中添加loader

loaders: [
  {
    test: /\.we(\?[^?]+)?$/,
    loaders: ['weex-loader', '@ali/weex-style-loader']
  }
]

让我们看看weex-style-loader转换后的代码是否符合大爷的需求

<style>
.mod-app-entry {
  color: #999;
  font-size: 24;
}
.weex-element-increment-1 {
  ...
}
.weex-element-increment-2 {
  ...
}
.weex-element-increment-3 {
  text-align: center;
  color: #f00;
  font-size: 24;
}
</style>
<template>
  <div class="mod-app-entry">
    <a repeat="{{item in list}}" href="{{item.pluginUrl}}" class="weex-element-increment-1">
      <image src="{{item.imgUrl}}" class="weex-element-increment-2"></image>
      <text class="weex-element-increment-3">{{item.title}}</text>
    </a>
  </div>
</template>

展望

在此基础上,类似vue支持<style lang="less"></style>,就可以使用lesssass预处理器了
敬请期待

时间: 2024-09-10 09:00:19

weex-style-loader: 给你熟悉的style开发体验的相关文章

Weex和Web开发体验的异同

在2017年1月12日 Weex Conf 2017下午的技术实践论坛上, Weex团队的勾股详细讲解了Weex和Web开发体验的异同.他主要从Weex 中的 Web 标准.Weex 中的 Web 研发模式以及其它注意事项展开了此次分享. 本文根据现场分享和幻灯片整理而成. Weex 中的 Web 标准 Weex中的Web标准主要包括HTML/CSS/JavaScript三个维度. HTML 目前Weex支持的Components约为15个,具体组件如下图所示. 相比于完成的HTML语法标准,W

《Java程序员面试秘笈》—— 面试题4 列出你熟悉的Java开发工具

面试题4 列出你熟悉的Java开发工具 考点:该问题一般会在面试时出现,主要是看求职者是否熟悉常用的Java开发工具,因为一个项目开发团队会使用一种固定的开发工具,只有求职者能够熟练使用该工具,才能够快速融入该团队. 出现频率: [面试题解析]Java作为一种跨平台开发语言,由于其开源性,各个公司和社区组织,都推出了各自的Java开发工具,这也是Java开发体系同微软的开发体系的区别之一.不同的项目开发团队一般都有自己熟悉的开发工具或者开发环境,求职者只有熟练使用不同的开发工具,才能适应项目开发

vue.js入门教程之绑定class和style样式_javascript技巧

一.前言 相信大家都知道数据绑定一个常见需求是操作元素的 class 列表和它的内联样式.因为它们都是属性,我们可以用 v-bind 处理它们:我们只需要计算出表达式最终的字符串.不过,字符串拼接麻烦又易错.因此,在v-bind 用于 class 和 style 时,Vue.js 专门增强了它.表达式的结果类型除了字符串之外,还可以是对象或数组. 二.绑定 HTML Class 请注意:尽管可以用 Mustache 标签绑定 class,比如 class="{{ className }}&quo

vue.js绑定class和style样式(6)_javascript技巧

数据绑定一个常见需求是操作元素的 class 列表和它的内联样式.因为它们都是 attribute,我们可以用 v-bind 处理它们:只需要计算出表达式最终的字符串.不过,字符串拼接麻烦又易错.因此,在 v-bind 用于 class 和 style 时,Vue.js 专门增强了它.表达式的结果类型除了字符串之外,还可以是对象或数组. 通过 v-bind:class 或者 :class 来为style或者class来绑定 绑定class <div class="test">

获取元素的style属性

r如何获取元素的style属性呢? 一般我们想到的方法是使用obj.style 例如 Html代码   <nav>   <div id="overflow" >   <div class="container">   <a href="index.asp">Home1</a>   <a href="html5_meter.asp">Previous2<

在ASP.NET WEB控件中应用样式(Style)

asp.net|web|控件 翻译: T.T (TPoI) 在这编文章中, 我将告诉你如何使用.NET FRAMEWORK类库中的WEB类来为WEB服务器控件创建和应用样式(Style). System.Web.UI.WebControls.Style 类 Style类定义在System.Web.UI.WebControls名字空间, 用来描叙一个WEB服务器控件的样式. 该类的属性可以设置WEB服务器控件的外观, 或者多个WEB服务器控件使用一个通用的外观. 你可以通过这些属性来改变背景色,

Expression Blend实例中文教程(12)-样式和模板快速入门Style,Template

在上一篇,介绍了Visual State Manager视觉状态管理器,其中涉及到控件的样式(Style)和模板( Template),本篇将详细介绍样式(Style)和模板(Template)在Silverlight项目中的应用,并介绍如 何使用Blend设计样式(Style)和模板(Template). 在LOB(Line-of-Business)企业级应用项目开发中,为了使项目的视觉效果多样化,不仅仅使用动画 效果,而且经常还需要修改部分控件的样式(Style)和模板(Template).

Word编程中的基于格式(Font Style)查找与替换

首先说明的是,我不懂VSTO,而是直接引用的 MS Word 的 COM组件,但是对象模型好像跟VSTO差不多,嘿嘿. 首先看一下代码: object oMissing = Type.Missing; object oFalse = false; object oTrue = true; Application app = new ApplicationClass(); app.Visible = false; object oFilename = "test.doc"; // 打开一

【WPF】在Style中设置ToolTip的问题

今天在群里有人问到: "怎样设置 TextBlock.ToolTip 的width,使得过长的字符串自动换行" 其实ToolTip是一个object,我们可以在其中放置任何东西,所以要解决这个问题,其实很简单,只需 要写如下的xaml代码: <TextBlock> <TextBlock.ToolTip> <TextBlock Text="xxxxxx" TextWrapping="Wrap"/> </Te