初识weex系列(前端视角) - 使用vue2.0

本文介绍了使用Weex与Vue的不同构建方式,包括init与create的区别,并演示了如何通过init方式构建一个简单的Weex项目,从环境搭建到基本功能实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

推荐一个很赞的地址
在线编辑代码

上一节,我们大概讲了一个项目,构建了一个app,过程应该是挺艰辛的,现在我们来看看这张图,以往我们都是用create,还记得吗,今天开始,我们来用init,也就是vue的模式来构建项目,不必要用create


其实,大家肯定会有疑问,init和create有什么区别呢?
结合勾三股四的话:
init初始化的项目是针对开发单个 Weex 页面而设计的,也就是说这样的项目只包括单个页面开发需要的东西,比如前端页面源文件、webpack 配置、npm 脚本等。项目产生的输出就是一个 JS Bundle 文件,可以自由的进行部署。

create是初始化一个完整的 App 工程,包括 Android 和 iOS 的整个 App 起步,前端页面只是其中的一部分。这样的项目最终产出是一个 Android App 和一个 iOS App。

详解

weex init awesome-project
之后我们进入项目所在路径,weex-toolkit 已经为我们生成了标准项目结构。

在 package.json 中,已经配置好了几个常用的 npm script,分别是:
build: 源码打包,生成 JS Bundle
dev: webpack watch 模式,方便开发
serve: 开启静态服务器
debug: 调试模式
我们先通过 npm install 安装项目依赖。之后运行 npm run dev 和 npm run serve 开启watch 模式和静态服务器。

然后我们打开浏览器,进入 http://localhost:8080/index.html 即可看到 weex h5 页面。复制代码

页面就出来了


但是,我们打开命令行工具,发现一直在报一个错误。
GET http://localhost:8080/node_modules/weex-vue-render/index.js 404 (Not Found)复制代码

这个文件是来模拟手机端的文件,很明显这个路径错误的,导致我们上面看到的是空白的手机页面,所以,我们在/weex.html里面修改weex-vue-render/index.js的路径
我早node包文件里面找到了这个,很明显,路径前面少了一个dist



加上dist之后,我们终于看到了正确的页面(这里真的有点坑,官方脚手架也能出错)

我想,大家都已经会了vue2.0的基本语法了吧,我们来改改代码
<template>
    <div class="wrapper">
        <text class="txt">请输入你对我的看法</text>
        <input ref="input" class="input" type="text" @input="oninput" @change="onchange" @focus="onfocus" @blur="onblur"></input>
    </div>
</template>
<script>
    const modal = weex.requireModule('modal')
    export default {
        methods: {
            oninput (event) {
                console.log('oninput:', event.value)
                modal.toast({
                    message: `oninput: ${event.value}`,
                    duration: 0.8
                })
            },
            onchange (event) {
                console.log('onchange:', event.value)
                modal.toast({
                    message: `onchange: ${event.value}`,
                    duration: 0.8
                })
            },
            onfocus (event) {
                console.log('onfocus:', event.value)
                modal.toast({
                    message: `onfocus: ${event.value}`,
                    duration: 0.8
                })
            },
            onblur (event) {
                console.log('onblur:', event.value)
                modal.toast({
                    message: `input blur: ${event.value}`,
                    duration: 0.8
                })
            }
        }
    }
</script>
<style>
    .input {
        font-size: 50px;
        width: 650px;
        margin-top: 50px;
        margin-left: 50px;
        padding-top: 20px;
        padding-bottom: 20px;
        padding-left: 20px;
        padding-right: 20px;
        color: #666666;
        border-width: 2px;
        border-style: solid;
        border-color: #41B883;
    }
    .txt{
        color: green;
        font-size: 50px;
    }
</style>复制代码
foo.vue
<template>
    <div class="wrapper">
        <text class="title">Hello {{target}}</text>
        <nav></nav>
    </div>
</template>

<style>
    .wrapper {
        align-items: center;
        /* margin-top: 120px; */
    }

    .title {
        font-size: 48px;
    }

    .logo {
        width: 360px;
        height: 82px;
    }
</style>

<script>
    import nav from './nav.vue'
    export default {
        data: {
            logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png',
            target: '大家好,我是乘风gg'
        },
        components: {nav},
        methods: {
            update: function (e) {
                this.target = 'Weex'
                console.log('target:', this.target)
            }
        }
    }
</script>复制代码

这时候,有人就会问了,我这样子怎么打包成apk,因为这个模式根本就使用不了platform add[android/ios]命令了,咋办啊,还记得我们上一节讲过,编译之后所有的东西,都会打包到那个dist目录下的那两个js文件,所以,在vue2.0工程目录下,我们只需要把编译后的所有内容,复制粘贴到我们前一节用create创建的那个android目录下,然后点击android studio里的run就好了(其实前端工程师只需要把app.weex.js交给安卓工程师就好了,做到这一步就行了)

然后,手机就会显示安装好后的页面.


上面网页调试的布局和手机的布局不一样啊,是不是我写错了呢?还真是我写错了(实在是坑,因为说好的三端统一,其实根本不是)先卖个关子。
这一节比较短,搭建环境和基本入门就到这了,其实教到这,大家都能直接去官网直接看 demo了,这个月月底比较忙,所以大家先去官网熟悉一下(没有vue基础的可以去看看vue基础语法),下一节我打算讲讲他的内置组件和模块,估计会有点无聊,我尽量结合实例吧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值