使用 Vue 开发 Weex 页面

Vue & Weex 介绍

Vue.js 是 Evan You 开发的渐进式 JavaScript 框架,在易用性、灵活性和性能等方面都非常优秀。开发者能够通过撰写 *.vue 文件,基于 <template><style><script> 快速构建组件化的 web 应用。

Vue.js 在 2016 年 10 月正式发布了 2.0 版本,该版本加入了 Virtual-DOM 和预编译器的设计,使得该框架在运行时能够脱离 HTML 和 CSS 解析,只依赖 JavaScript;同时 Virtual-DOM 也使得 Vue 2.x 渲染成原生 UI 成为了可能。

Weex 是一套简单易用的跨平台开发方案,能以 Web 的开发体验构建高性能、可扩展的原生应用。 Weex 与 Vue 有官方合作,支持将 Vue 2.x 作为内置的前端框架,Vue 也借此具备了开发原生应用的能力。

尝鲜体验

开始之前,希望你能对 Weex 和 Vue 有基本的了解,推荐阅读 Weex Tutorial 和 Vue Introduction 了解更多信息。

快速创建项目

Weex 官方提供了 weex-toolkit 的脚手架工具来辅助开发和调试。

首先安装 weex-toolkit 工具:


npm install [email protected] -g

注:目前 weex-toolkit 仅在 beta 版中才支持初始化 Vue 项目,使用前请确认版本是否正确。

然后初始化 Weex 项目:


weex init awesome-project

执行完命令后,在 awesome-project 目录中就创建了一个使用 Weex 和 Vue 的模板项目,生成的项目功能和用法可以参考其 package.json 和 README 。

编写代码

在创建了项目并且配置好了开发环境之后,我们就可以开始写代码了。

虽然开发的是原生应用,但是代码写起来和 Web 中并没什么不一样。你可以选择自己喜欢的前端开发环境、可以写 .vue 文件、也可以直接写 javascript 文件、可以使用 ES6+ 、可以使用发布在 npm 上的模块、可以扩展 Weex 的组件或者模块。

注意事项

Vue.js 最初是为 Web 设计的,虽然可以基于 Weex 开发移动应用,但是 Web 开发和原生开发毕竟不同,在功能和开发体验上都有一些差异,这些差异从本质上讲是原生开发平台和 Web 平台之间的差异,Weex 正在努力缩小这个差异的范围。

参考文章《Vue 2.x 在 Weex 和 Web 中的差异》了解存在差异的原因和细节。

使用其他工具库

Vue.js 也有较多周边技术产品,如 Vuex 和 vue-router 等,这些库也可以在 Weex 中很好的工作。

关于 Vuex 和 vue-louter 的使用方法,可以参考《在 Weex 项目中使用 Vuex 和 vue-router》

我们基于 Weex 和 Vue 开发了一个的完整项目 weex-hackernews ,引入了包含 Vue 2.x 的 WeexSDK,创建了三端的项目和基本的编译配置。在项目中使用了 Vuex 和 vue-router ,能够实现同一份代码,在 iOS、Android、Web 下都能完整地工作。

扩展 Weex

Weex 内置了一些通用的组件和模块,可以满足基本上使用需求。为了控制 SDK 的体积和保持框架的通用性,我们会谨慎地选择内置的组件和模块,并不会包罗万象将所有功能都封装进 SDK。不过我们提供了额外的组件市场,在其中将能找到满足不同需求、各式各样的组件和模块,此外 Weex 也具备横向扩展的能力,开发者可以自行定制和扩展 Weex 组件和模块。

Weex 的底层设计比较灵活,除了组件和模块以外,开发者甚至可以定制 Weex 内置的前端框架,Vue 2.x 就是一个成功的例子。

可以阅读以下文档了解更多信息:

Vue 2.x 在 Weex 中的特色功能

我想,你一定对 Vue 为什么能渲染成原生页面 、Weex 为什么能将内核切换成 Vue 心存好奇。如果你对这些细节感兴趣,可以阅读这篇文章 《how it works》

流式渲染

在 Weex 中,我们可以通过 <foo append="tree|node"> 的方式定义页面首次渲染时的渲染颗粒度,这让开发者有机会根据界面的复杂度和业务需求对首次渲染过程进行定制。append="tree" 表示整个结点包括其所有子结点全部生成完毕之后,才会一次性渲染到界面上;而 append="node" 则表示该结点会先渲染在界面上作为一个容器,其子结点会稍后做进一步渲染。

表单控件绑定

在 Weex 中,我们针对 <input> 和 <textarea> 这两个表单控件提供了和 web 体验相同的 v-model 指令。通过 <input v-model="message"> 或 <textarea v-model="message">,开发者可以把数据 message 的值自动展示在文本框上,同时用户修改了文本框的值的时候,数据 message 会自动被更新。

多页面上下文隔离

如 Weex 工作原理文中所述,所有 Weex 的 JS bundle 公用一个 JavaScript 内核实例。所以如何能够让多个 JS bundle 中使用的 Vue 是完全隔离的,并且其中一个页面对 Vue 进行扩展或改写不会影响到其它页面就变成了一个问题,通过 Weex 和 Vue 双方的协作,这一问题已经得以解决。大家可以放心使用。

<transition> 过渡状态

Weex 支持了 Vue 2.x 中经典的 <transition> 写法,开发者可以通过 <transition> 轻松定义一个界面在两种状态中的过渡方式。

时间: 2024-10-10 16:18:56

使用 Vue 开发 Weex 页面的相关文章

vue 开发多页面应用

Vue cli 参考:https://www.jianshu.com/p/05c1bc5074a9 Vue-cli 参考:https://www.cnblogs.com/lxg0/p/9108210.html 原文地址:https://www.cnblogs.com/fengyouqi/p/11164711.html

vue开发后台管理系统小结

最近工作需要用vue开发了后台管理系统,由于是第一次开发后台管理系统,中间也遇到了一些坑,想在这里做个总结,也算是对于自己工作的一个肯定.我们金融性质的网站所以就不将代码贴出来哈 一.项目概述 首先工作需求是这样的,开发一个公司的总后台,包含各个不同的模块,总体难度一般,没有开发ui图,用的vue-cli .elementui框架.webpack打包. 总需求的思维导图见链接  http://naotu.baidu.com/file/e8c31b43dfb2f18a3c523e0fa1393c0

回顾vue开发spa(踩坑记录)

使用vueJS开发前端页面差不多也有大半多年了.由于项目后台管理页面最早都是使用JQ进行开发的,刚开始使用vue的时候,只能是直接在页面里面引入vueJS框架进行开发,期间把项目后台的编辑页面和其他复杂页面全部改用vueJS的了(没有用到组件,只是增强了一下交互,开发更简单便捷).由于工期和个人习惯问题,期间也留下了很多坑和隐患,比如不少页面是JQ和vue混用,导致后来改功能的时候痛不欲生-- 所以最近有一个新的后台管理页面,索性使用vue全家桶(vue,vue-router,vue-cil,v

iOS 混合开发 —— weex

官网介绍文档:http://weex.apache.org/cn/guide/integrate-to-your-app.html 官网cocoapods/手动 集成文档:https://open.taobao.com/doc2/detail?spm=a219a.7629140.0.0.tFddsV&&docType=1&articleId=104829 注:有任何不同,请依照官网为准,在此深深感谢阿里程序员大牛不辞辛苦, 做好开源工作,致敬.. 一.weex 手动集成到原生应用中

前端学习---移动端vue开发踩坑记

前言: 大概两个月前投身于一个项目中去,项目是一个移动端的项目,所选用的框架是时下比较流行的vue.这篇文章也是针对这个项目和以前自己学习时的一些总结,包括一些通用的移动端开发要注意的事项.vue开发遇到的一些问题.本文的目的是为了在以后的开发中我们可以避免这些坑,提高我们的开发效率. 一.移动端开发特有问题: 1.移动端样式的兼容性: 在当前移动端的开发要面对各种不同的手机,不同的手机DPI也是不同的,比如Iphone 8的DPI就是2,Iphone 8P的DPI就是3.为了让页面可以兼容不同

【转】[总结]vue开发常见知识点及问题资料整理(持续更新)

1.(webpack)vue-cli构建的项目如何设置每个页面的title 2.vue项目中使用axios上传图片等文件 3.qs.stringify() 和JSON.stringify()的区别以及在vux中使用post提交表单数据需要qs库序列化 4.vue中实现全局的setCookie,getCookie以及delCookie方法笔记 5.webpack中alias配置中的"@"是什么意思? 6.webpack proxyTable 代理跨域 7.如何在 vue 项目里正确地引用

vue开发规范

一.简介 团队合作中规范文档是必须的,在多人合作的项目只有定义好一定的编码规范才会使得开发井井有序,代码一目了然,下边将谈一下个人对vue使用规范的一些看法. 二.规范案例 1.组件命名 组件文件名应该始终以单词大写开头(PascalCase),组件名也是以单词大写开头,当多个单词拼写成的组件时,单词开头大写,采用驼峰式命名规则.一般是多个单词全拼,减少简写的情况,这样增加可读性.组件应该都放到components文件夹下,单个页面独立一个文件夹,用来放相对应的vue文件以及页面相关的样式文件,

vue 配置多页面应用

前言: 本文基于vue 2.5.2, webpack 3.6.0(配置多页面原理类似,实现方法各有千秋,可根据需要进行定制化) vue 是单页面应用.但是在做大型项目时,单页面往往无法满足我们的需求,因此需要配置多页面应用. 1. 新建 vue 项目 vue init webpack vue_multiple_test cd vue_multiple_test npm install 2. 安装 glob npm i glob --save-dev glob 模块用于查找符合要求的文件 3. 目

基于webpack的vue开发环境搭建

1.新建并初始化项目(npm int -y),安装webpack,webpack-cli webpack-dev-server 2.安装vue: npm i vue --save 3.dist下建立index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" con