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根據npm命令來安裝:javascript
npm install wepy-cli -g
在指定的目錄建立項目php
wepy new myproject
切換到指定項目css
cd myproject
開啓實時編譯html
wepy build --watch
├── 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區別java
bind
事件綁定不會阻止冒泡事件向上冒泡,catch
事件綁定能夠阻止冒泡事件向上冒泡node
<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>
import wepy from 'wepy';
async onLoad() { await wepy.login(); this.userInfo = await wepy.getUserInfo(); }
關鍵字:async await 能夠直接對promise類型進行支持git
wepy從如下幾點能提供便利:github
層疊樣式表【Cascading Style Sheets】
基本的頁面樣式是用CSS來作支持的。因此CSS樣式對頁面來說是一個臉面的存在
注:如下CSS部分來自 https://developer.mozilla.org/en-US/docs/Web/CSSweb
層疊樣式表(CSS)是一種樣式表語言,用於描述用HTML或 XML(包括XML方言,如 SVG或XHTML)編寫的文檔的表示。CSS描述了元素如何在屏幕上,紙上,語音或其餘媒體上呈現。npm
CSS主要能影響如下幾點:
字體
術語 | 定義 | 例 |
---|---|---|
serif |
有襯線字體的字體(在某些字體的筆觸結尾處看到的蓬勃發展和其餘細節) | 個人大紅象 |
sans-serif |
沒有襯線的字體。 | 個人大紅象 |
monospace |
每一個字符具備相同寬度的字體,一般用於代碼清單中。 | 個人大紅象 |
cursive |
旨在模仿手寫的字體,流暢的筆畫。 | 個人大紅象 |
fantasy |
打算裝飾的字體。 | 個人大紅象 |
顏色
em
s :1em等於在咱們設計的當前元素的父元素上設置的字體大小(更具體地說,包含在父元素中的大寫字母M的寬度
font-style
:Used to turn italic text on and off.
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 的縮寫,意爲"彈性佈局",用來爲盒狀模型提供最大的靈活性。
-webkit
前綴。.box{ display: -webkit-flex; /* Safari */ display: flex; }
注意,設爲 Flex 佈局之後,子元素的float
、clear
和vertical-align
屬性將失效。
Flex佈局:http://www.ruanyifeng.com/blog/2015/07/flex-examples.html
導入wepy項目
wepy項目是依賴npm的,因此在clone下來後,
一、cmd中 進入到該下載文件目錄下(cd e:\wepypro)
二、輸入npm install --save-dev(報錯就輸入(npm init -y))
三、運行 wepy build --watch,開啓實時編譯