Weex学习第二篇:Hello world

2023-11-10

曾经何时,我以为学习一门语言或者是新技术,只要能写出Hello world,就算是学会了。这个思想困扰了我很久,以至于之前整理电脑的时候发现php,python,ruby,phonegap,react native,go,node.js,.net这些文件夹中都是只有hello world的代码,非常惭愧。

但是不可否认的是,Hello world是一个好的开始。

输出Hello world有两种方式:
1.是在线调试 http://dotwe.org/
2.本地搭建环境开发

下面来介绍一下官方本地开发的步骤:
第一步:安装依赖

首先,你需要 Node.js 和 weex-toolkit。

安装 Node.js 方式多种多样,最简单的方式是在 Node.js 官网 下载可执行程序直接安装即可。

对于 Mac,可以使用 Homebrew 进行安装:

brew install node
更多安装方式可参考 Node.js 官方信息

安装完成后,可以使用以下命令检测是否安装成功:

$ node -v
v6.3.1
$ npm -v
3.10.3
通常,安装了 Node.js 环境,npm 包管理工具也随之安装了。因此,直接使用 npm 来安装 weex-toolkit。

npm 是一个 JavaScript 包管理工具,它可以让开发者轻松共享和重用代码。Weex 很多依赖来自社区,同样,Weex 也将很多工具发布到社区方便开发者使用。

$ npm install -g weex-toolkit
国内开发者可以考虑使用淘宝的 npm 镜像 —— cnpm 安装 weex-toolkit

$ npm install -g cnpm
$ cnpm install -g weex-toolkit
提示:

如果提示权限错误(permission error),使用 sudo 关键字进行安装

$ sudo cnpm install -g weex-toolkit
安装结束后你可以直接使用 weex 命令验证是否安装成功,它会显示 weex 命令行工具各参数:

第2步:创建文件

现在可以开始编写代码了。首先,我们创建一个 .we 文件(Weex 程序的文件后缀(扩展名)是 .we)。

打开空白的 hello.we 文件,输入三个标签,内容为:

<template>
</template>

<style>
</style>

<script>
</script>
我们在 Get started 里已经介绍过 Weex 基本的代码结构:<template>、<style>、<script> 分别对应于 Web 中的 HTML,CSS(<style> 标签),JavaScript(<script> 标签)。

其实,上面的代码就是最简单的 Weex 程序。但是 .we 文件是不能直接运行的,这时候需要使用刚才安装好的 weex-toolkit。weex-toolkit 会编译 .we 文件,并且创建静态服务器。

这里,使用 weex hello.we 命令编译该程序。

$ weex hello.we
这时,命令行会做几件事:

编译 .we 文件;
启动热加载服务;
启动静态服务器;
拉起浏览器,访问 http://127.0.0.1:8081/weex_tm...
这时候,已经可以在浏览器预览 Weex 页面了。不过此时页面是空白的,因为 .we 文件中没有任何实质的内容。

第3步:添加内容

修改 weex.we 文件,向 <template> 标签中添加内容。具体代码如下:

<template>
<div>

<text>Hello world</text>

</div>
</template>

<style></style>

<script></script>
保存代码后,浏览器会自动刷新页面,这时会看到浏览器显示了 “Hello world”。

第4步:添加样式

现在,对已有的文本内容进行样式修饰。这里将文本颜色设置为红色,字体大小为 50 像素。具体代码如下:

<template>
<div>

<text class="text" style="color: #FF0000;">Hello world</text>

</div>
</template>

<style>
.text{

font-size: 50;

}
</style>

<script></script>
这时候,浏览器已经重新载入了页面。其实,是weex-toolkit开启了热加载。可以看到红色的 “Hello world”。

注意: Weex 支持通过 style 标签来设定样式,也支持内联样式风格。 对于数值,无需添加任何单位(包括 px、em、rem 等),这是建议的写法。如需了解有哪些通用的样式,可以参考 通用样式。

第5步:预览

已经在浏览器中看到了刚才的代码效果,为了验证三端是否一致,我们还需 Playground App 验证。

这里,我们需要为 weex hello.we 增加 --qr 参数,表示生成二维码。

$ weex hello.we --qr
然后,使用 Playground 扫码即可。

mobile_preview

第6步:调试

weex-toolkit 已经集成了 Debugger,只需要使用如下命令即可开启 Debugger 开关调试 hello.we:

$ weex debug hello.we
我们输入以上命令开启,会自动打开浏览器,页面上有两个二维码,第一个是 Debugger Server,第二个是 .we 文件的地址。我们在 Playground 中先扫第一个,此时浏览器会进入一个新的页面,请你选择你需要的调试模式:

Debugger:将会打开 js debugger 页面,您可以通过 debugger 页面调试 js(诸如打断点 查看js log 和查看调用堆栈等信息);
Inspector:将会打开 inspector 页面,您可以通过这个页面查看 Weex 页面的 element 属性结构,包含高亮元素,展示样式表,以及显示 native 的 log。同时可以打开一个远程的手机镜像,便于查看界面。另外调试方块中的 ElementMode 可以用来选择 element 树显示原始的 native 组件树还是显示面向前端同学的 DSL (HTML)组件树。
选择一种模式后会新开窗口进入调试页面,这时我们再扫第二个二维码即可进入我们想要调试的页面进行调试了。

总结:不出意外的话按照官方给出的步骤,都可以输出hello world。需要注意的是在安装命令的时候有的需要“sudo + 命令”用管理员权限,否则会报“error file + 路径”之类的错误,意思是无法在某个路径下创建文件,或者无法写入数据等等。如果之前安装过npm的话,可能版本需要升级,如果版本过旧不升级直接装weextoolkit也会报error。

提示:如果实在是做不出来,个人建议还是可以略过,因为真正重要的是编程思想,框架的使用和具体API的运用。可以继续往下学习,有可能现在不明白的地方,到后面可能就会理解的,因为这只是其中一个方面,当整个过程都完整的学习过后就会有一个大画面,之前的一些疑惑就是这个大画面的小缺口,当大画面清晰后,小缺口自然也就能弥补上。所以建议大家坚持学习,不要放弃,要有专注,专研的精神,同时也要有大局观,懂得取舍。

参考文章:http://weex-project.io/cn/doc...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Weex学习第二篇:Hello world 的相关文章

随机推荐

  • java获取url锚点_定位与锚点

    文档流 普通流 上至下 左至右 浮动流 元素添加了float 定位流 添加了定位属性 定位 position static 默认值 absolute 绝对定位 脱离文档流 不占位 默认参考浏览器零点 relative 相对定位 占据文档流
  • c# 得到list符合某条件的索引值,排序

    请教 在List集合中怎么得到元素的索引值 参考 http www myexception cn c sharp 385022 html 这个可以用来读取窗口的多个textbox控件中内容 1 解决方案 2 你可以使用FindIndex方法
  • Centos8 部署 Mysql8.0及主从复制

    1 拉取镜像 root VM 24 9 centos docker pull mysql 如需拉取置指定版本镜像加上 版本号即可 root VM 24 9 centos docker pull mysql 7 6 1 创建本地文件用于挂载
  • C++ 异常处理

    C 异常 Exception 是指在程序运行时产生的特殊情况 例如 尝试除以零的操作 异常提供了一种转移程序控制权的方式 异常处理涉及到三个关键字 try catch throw throw 当问题出现时 程序会抛出一个异常 这是通过使用
  • VUE 定时请求接口数据

    1 设置定时器 mounted this timer setInterval function 执行内容 60000 2 清除定时器 beforeDestroy clearInterval this timer
  • Android平台深度学习--NNAPI

    转自 http blog sina com cn s blog 602f87700102y62v html 1 Android 8 1 API 27 NNAPI 人工智能神经网络API 如 TensorFlow 神经网络 API 能够向设备
  • Java的动态代理Proxy

    动态代理类是实现在运行时指定的接口列表的类 这样通过类实例上的一个接口的方法调用将被编码并通过统一接口分派到另一个对象 先问一个问题 数据库操作需要以下流程 获取数据库连接 gt 执行sql gt 提交事务 gt 异常回滚事务 gt 释放连
  • Java 异常之 RuntimeException和Exception的区别

    在java的异常类体系中 Error和RuntimeException是非检查型异常 其他的都是检查型异常 所有方法都可以在不声明throws的情况下抛出RuntimeException及其子类 不可以在不声明的情况下抛出非RuntimeE
  • C语言指针的赋值和初始化的看法

    https blog csdn net liuchunjie11 article details 80333224 在查看上述博客时 修改代码 include
  • Spring——事务注解@Transactional【建议收藏】

    在某些业务场景下 如果一个请求中 需要同时写入多张表的数据或者执行多条sql 为了保证操作的原子性 要么同时成功 要么同时失败 避免数据不一致的情况 我们一般都会用到事务 Spring框架下 我们经常会使用 Transactional注解来
  • 级数求和的八个公式_逐渐硬核的函数展开——洛朗级数、Mittag-Leffler和Weierstrass定理...

    从幂级数到洛朗级数 在传统微积分的范畴内 幂级数 是一个非常有效的函数近似工具 它不仅能够帮助我们为函数找出合适的多项式近似 还能够有效地解决极限里一类未定式问题 然而幂级数也有它的局限性 它只能在全纯函数的解析点处展开 而且很多时候都无法
  • sklearn库中的标准数据集及基本功能

    sklearn库 sklearn是scikit learn的简称 是一个基于Python的第三方模块 sklearn库集成了一些常用的机器学习方法 在进行机器学习任务是 并不需要实现算法 只需要简单的调用sklearn库中提供的模块就能完成
  • 双端链表的增加,删除,修改,遍历操作的实现

    package com yg linkedList author GeQiLin date 2020 2 21 13 46 public class DoubleLinkedListDemo public static void main
  • PCB电路板原理图中VCC、VDD、VEE、VSS、VBAT各表示什么意思?

    PCB电路板原理图中VCC VDD VEE VSS VBAT各表示什么意思 一 名词解析 1 VCC C circuit 表示电路的意思 即接入电路的电压 2 VDD D device 表示器件的意思 即器件内部的工作电压 3 VSS S
  • linux 多块磁盘挂一个文件夹,Linux单目录挂载多块磁盘

    Linux将多块磁盘挂载到一个目录 特此记录 方便以后使用 服务器需要保存大量图片 内含4块2T的磁盘 需要将磁盘挂载到影像目录 单块磁盘挂载比较简单 创建分区 格式化分区 挂载 同一目录无法重复挂载 后挂载的会覆盖之前挂载的磁盘 但是现在
  • python强化学习--gym安装与使用

    最近开始学习强化学习 第一步肯定是要学会安装和使用pym 原本以为很简单 事实上确实很简单 但是遇到一个小问题 就是安装gym之后 在应用的过程中 游戏界面没有显示出来 了解后才知道是gym版本不对 一种可用的版本匹配是 python 3
  • 前端面试题汇总

    总结一下前端面试官会经常问到的一些面试题 目录 总结一下前端面试官会经常问到的一些面试题 一阶段 HTML5 CSS3 隐藏页面中某个元素的办法 区别 请说明 px em rem vw vh rpx 等单位的特性 什么是 BFC 盒子模型总
  • JAVA课程设计(小游戏贪吃蛇)完整源码附素材(一)

    JAVA课程设计 小游戏贪吃蛇 完整源码附素材 一 JAVA课程设计 小游戏贪吃蛇 完整源码附素材 二 JAVA课程设计 小游戏贪吃蛇 完整源码附素材 三 文章目录 前言 一 任务描述 1 1 课程设计目的 1 2 课程设计内容和要求 二
  • 设计一个回合制战斗系统Combat(C++)

    C 设计一个回合制战斗系统Combat 目录 C 设计一个回合制战斗系统Combat 题目 重要提醒 Soldier类 Wizard类 Master类 Warsystem类 题目 设计和实现回合制战斗系统Combat 1 Soldier战士
  • Weex学习第二篇:Hello world

    曾经何时 我以为学习一门语言或者是新技术 只要能写出Hello world 就算是学会了 这个思想困扰了我很久 以至于之前整理电脑的时候发现php python ruby phonegap react native go node js n