基本示例

import wepy from 'wepy';//引入wepy框架说明
// 通过继承自wepy.page的类创建页面逻辑
export default class Index extends wepy.page {
//用于页面模板绑定的数据
data={
motto: 'hello world',
userInfo: {}
} //事件处理函数(集中保存在methonds对象中)
methods = {
bindViewTap(){
console.log('button clicked');
}
} onLoad () {//页面的声明周期方法
console.log('onLoad');
}
}

WePy的基本配置

  • WePy根据npm命令来安装:

    npm install wepy-cli -g

  • 在指定的目录创建项目

    wepy new myproject
  • 切换到指定项目

    cd myproject
  • 开启实时编译

    wepy build --watch

WePy项目的目录结构

├── dist                   微信开发者工具指定的目录(该目录由WePY的build指令自动编译生成,请不要直接修改该目录下的文件)
├── node_modules
├── src 代码编写的目录(该目录为使用WePY后的开发目录)
| ├── components WePY组件目录(组件不属于完整页面,仅供完整页面或其他组件引用)
| | ├── com_a.wpy 可复用的WePY组件a
| | └── com_b.wpy 可复用的WePY组件b
| ├── pages WePY页面目录(属于完整页面)
| | ├── index.wpy index页面(经build后,会在dist目录下的pages目录生成index.js、index.json、index.wxml和index.wxss文件)
| | └── other.wpy other页面(经build后,会在dist目录下的pages目录生成other.js、other.json、other.wxml和other.wxss文件)
| └── app.wpy 小程序配置项(全局数据、样式、声明钩子等;经build后,会在dist目录下生成app.js、app.json和app.wxss文件)
└── package.json 项目的package配置

事件绑定语法

官网语法 替换后  
bindtap="click" @tap="click"  
catchtap="click" @tap.stop="click“  
     

catchtap和bindtap区别

bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡

repeat语法

<repeat for="{{groupList}}" index="index" item="item" key="key">
<counter></counter>
</repeat>

组件化开发

import wepy from 'wepy';

export default class MyComponent extends wepy.component {
methods = {
bindtap () {
let rst = this.commonFunc();
// doSomething
}, bindinput () {
let rst = this.commonFunc();
// doSomething
},
} //正确:普通自定义方法在methods对象外声明,与methods平级
customFunction () {
return 'sth.';
} }
示例:
<template>
<view>
<panel>
<h1 slot="title"></h1>
</panel>
<counter1 :num="myNum"></counter1>
<counter2 :num.sync="syncNum"></counter2>
<list :item="items"></list>
</view>
</template> <script>
import wepy from 'wepy';
//引入List、Panel和Counter组件
import List from '../components/list';
import Panel from '../components/panel';
import Counter from '../components/counter'; export default class Index extends wepy.page {
//页面配置
config = {
"navigationBarTitleText": "test"
}; //声明页面中将要使用到的组件
components = {
panel: Panel,
counter1: Counter,
counter2: Counter,
list: List
}; //可用于页面模板中绑定的数据
data = {
myNum: 50,
syncNum: 100,
items: [1, 2, 3, 4]
}
}
</script>

promise处理

import wepy from 'wepy';

async onLoad() {
await wepy.login();
this.userInfo = await wepy.getUserInfo();
}

关键字:async await 可以直接对promise类型进行支持

wepy从以下几点能提供便利:

  • 类Vue开发风格
  • 支持自定义组件开发
  • 支持引入NPM包
  • 支持Promise
  • 支持ES2015+特性,如Async Functions
  • 支持多种编译器,Less/Sass/Styus、Babel/Typescript、Pug
  • 支持多种插件处理,文件压缩,图片压缩,内容替换等
  • 支持 Sourcemap,ESLint等
  • 小程序细节优化,如请求列队,事件优化等

CSS

层叠样式表【Cascading Style Sheets】
基本的页面样式是用CSS来做支持的。所以CSS样式对页面来讲是一个脸面的存在
注:以下CSS部分来自 https://developer.mozilla.org/en-US/docs/Web/CSS

层叠样式表(CSS)是一种样式表语言,用于描述用HTMLXML(包括XML方言,如SVGXHTML)编写的文档的表示。CSS描述了元素如何在屏幕上,纸上,语音或其他媒体上呈现。

CSS主要能影响以下几点:

文本样式

  • 字体

    术语 定义
    serif 有衬线字体的字体(在某些字体的笔触结尾处看到的蓬勃发展和其他细节) 我的大红象
    sans-serif 没有衬线的字体。 我的大红象
    monospace 每个字符具有相同宽度的字体,通常用于代码清单中。 我的大红象
    cursive 旨在模仿手写的字体,流畅的笔画。 我的大红象
    fantasy 打算装饰的字体。 我的大红象
  • 颜色

ems :1em等于在我们设计的当前元素的父元素上设置的字体大小(更具体地说,包含在父元素中的大写字母M的宽度

font-style:Used to turn italic text on and off.

CSS布局

justify-content:用于设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式。

测试页面:
http://www.runoob.com/try/playit.php?f=playcss_justify-content&preval=flex-start

align-items:属性定义flex子项在flex容器的当前行的侧轴(纵轴)方向上的对齐方式。
测试页面:
http://www.runoob.com/try/playit.php?f=playcss_align-items&preval=stretch

p:last-child:指定属于其父元素的最后一个子元素

display: flex:Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。

  • 任何一个容器都可以指定为 Flex 布局。
  • Webkit 内核的浏览器,必须加上-webkit前缀。
.box{
display: -webkit-flex; /* Safari */
display: flex;
}

注意,设为 Flex 布局以后,子元素的floatclearvertical-align属性将失效。
Flex布局:http://www.ruanyifeng.com/blog/2015/07/flex-examples.html

导入wepy项目

wepy项目是依赖npm的,所以在clone下来后,

1、cmd中  进入到该下载文件目录下(cd e:\wepypro)

2、输入npm install --save-dev(报错就输入(npm init -y))

3、运行 wepy build --watch,开启实时编译

WePy框架的使用的更多相关文章

  1. 像VUE一样写微信小程序-深入研究wepy框架

    像VUE一样写微信小程序-深入研究wepy框架 微信小程序自发布到如今已经有半年多的时间了,凭借微信平台的强大影响力,越来越多企业加入小程序开发. 小程序于M页比相比,有以下优势: 1.小程序拥有更多 ...

  2. wepy框架自定义组件编译报错not Found File XXX.wxss

    今天在自己写wepy框架组件的时候编译后报错not Found File XXX.wxss 我去,当时我很难受啊,调用组件时结构和逻辑都正常,一写样式就原地爆炸 解决之路:1.先打开编译后的dist文 ...

  3. 使用wepy框架搭建微信小程序采坑记(一)

    1.什么是wepy 这个框架是腾讯内部出的一个类MVVM的小程序开发框架.大体上来说语法是类VUE的,所以如果有VUE开发经验的话迁移成本会低一些.至于具体的怎么使用我就不赘言了,有问题查文档(官方文 ...

  4. 04——wepy框架搭建

    wepy官方文档:https://tencent.github.io/wepy/document.html#/ 1.项目下载 # .安装wepy-cli npm install wepy-cli -g ...

  5. wepy框架构建小程序(1)

    wepy框架构建小程序(1) 基本操作: # 安装脚手架工具 npm install wepy-cli -g # 创建一个新的项目 npm init standard myproject # 进入新项 ...

  6. wepy框架的API的预加载$preload这功能阔以喔

    优势:比 url 传递.或是 storage .或是 globalData 更方便 1:如 url 不能直接传一个 Object 要传的又要序列化与反序列化操作,麻烦(普通的单个变量还是挺便捷简单实在 ...

  7. 微信小程序 wepy框架 之拦截器intercepter使用

    1,在使用wepy框架创建的项目下 找到src/app.wpy 2,在app.wpy constructor方法中添加 super(); this.use('promisify');//启用ES6 p ...

  8. wepy框架关闭Eslint语法校验(error More than 1 blank line not allowed no-multiple-empty-lines)

    最近在学习使用wepy框架制作小程序,导入编译的项目后报如下错误(error  More than 1 blank line not allowed  no-multiple-empty-lines) ...

  9. 转载:wepy框架入门

    转载:https://www.jianshu.com/p/93d5a4b99777 安装 wepy 命令行工具. npm install wepy-cli -g 在开发目录生成开发DEMO. wepy ...

随机推荐

  1. Linux 使用vi命令的教程

    一.首先用vi命令打卡要编辑的文件: 注意:vi命令的使用如下: 打开或新建文件,并将光标至于第一行首:[root@centos6 /]# vi /etc/my.cnf 打开文件,并将光标移至最后一行 ...

  2. 现代“十二要素应用”与 Kubernetes

    "十二要素应用"为开发SaaS应用提供了方法上的指导,而Docker能够提供打包依赖,解耦后端服务等特性,使得两者非常吻合.这篇文章介绍了Docker特性怎样满足了开发" ...

  3. Android 网络交互之移动端与服务端的加密处理

    在开发项目的网络模块时,我们为了保证客户端(Client)和服务端(Server)之间的通信安全,我们会对数据进行加密. 谈到网络通信加密,我们可以说出:对称加密,非对称加密,md5单向加密,也能提到 ...

  4. 苹果_公司开发者账号_注册Apple ID

    本文所有网站入口为developer.apple.com 注册Apple ID 注意事项:目前注册信息尽量用拼音或英文,姓名格式正确,记住安全问题,出生日期在18岁以上(小于18岁会出现Sorry,y ...

  5. Android TeaPickerView数据级联选择器

    数据级联选择器.三级联动.二级联动.层级联动.多数据筛选.必藏 (Data Cascade Selector, Hierarchical Structure, Multiple Data Screen ...

  6. apache commons lang架包介绍

    commons lang组件介绍和学习 介绍 Java语言开发时有一个隐患,那就是java支持null值,这就导致很多时候操作可能会出异常. 因此很多第三方组件都会提供安全null safe 操作(即 ...

  7. Step by Step Process of Migrating non-CDBs and PDBs Using ASM for File Storage (Doc ID 1576755.1)

    Step by Step Process of Migrating non-CDBs and PDBs Using ASM for File Storage (Doc ID 1576755.1) AP ...

  8. alluxio 信息索引

    最近要使用到 alluxio,发现网上还是有一些文档很是不错,现在通过这篇文章进行索引一下,进行备忘: https://edgedef.com/2017/08/17/alluxio-%E5%B0%8F ...

  9. JS去重的几种常见方法

    JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...

  10. Mybatis----resultMap类型详解

    Mybatis----resultMap类型详解 这篇文章主要给大家介绍了关于Mybatis中强大的resultMap功能的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mybatis具 ...