欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

宁皓网 微信小程序:框架

学习微信小程序框架。
来自 
https://ninghao.net/course/5054#info

 我做的例子是在百度网盘里  

好像是  ninghao-weixin-master.zip

 

准备
1) 创建小程序项目

我们在小程序的起步课程里,在本地创建了一个快速开始的小程序项目... 现在我们要从头开始学习小程序的开发 .. 可以先去创建一个空白的小程序项目 ..

打开微信的开发者工具 ... 登录以后 .. 可以先把之前创建的演示小程序删除掉 .. 再添加一个新的项目 ..

回到登录之后的小程序平台,打开小程序信息的详细页面 .. 开发设置 .. 复制一下小程序的 ID .. 把它粘贴到开发者工具这里 ..

项目的名字是 ninghaoDemo ..

选择一下项目所在的目录 ...

在我的桌面上,之前创建过一个演示小程序 .. 可以先把它删除掉 ... 删除的是 ninghao-weixin ... 再创建一个新的目录 .. 名字是 ninghao-weixin

回到开发者工具 .. 找到刚才创建的空白目录 .. ninghao-weixin ..

去掉这个创建 quick start 项目的选项 .. 添加项目 ..

进入到小程序的项目所在的目录 ... 用编辑器打开这个项目 ...

我们可以对项目做一下版本控制 .. 在项目下面创建一个空白的 markdown 文件 .. README.md ..

初始化一个 git 仓库 ..

添加所有的修改 ...

再 commit 一下 ...

来自 https://ninghao.net/video/5056#info
 

注册
2) 注册程序与页面

现在模拟器上显示的是一个空白的微信小程序,在控制台上会显示一个错误 .. 说没找到入口文件 app.json .. 我们可以先在项目的根目录下面,先给小程序添加一个主要的逻辑文件 .. 文件的名字应该是 app.js ... 在它里面用一下 App 去注册一个小程序 .. 先给它提供一个空白的对象 .. 一会我们会往里面放点东西 ..

再去给小程序创建一个主要的配置文件 .. 文件的名字应该是 app.json .. 一组花括号 ...

现在控制台上提示,在 app.json 里面没定义 pages ... 就是小程序里的页面 .. 在 app.json 里面,添加一个 pages .. 它里面的东西就是小程序里的页面 ... 比如先添加一个 pages/index/index .. 它表示的是页面的路径.. 也就是个 index 页面应该是在 pages 目录下面的 index 这个目录里面 .. 文件的名字是 index .. 这里不需要添加文件的扩展名 .. 小程序框架会自动去加载需要的文件 ..

每个页面都有它的主文件,配置文件,视图,还有样式文件 ..

下面我们再去添加这个页面 .. 创建一个文件 .. 要把它放在 pages/index 的下面,名字是 index.js .. 每个页面都需要一个 js 文件,它里面可以存储页面上需要的主要的逻辑代码 ..

注册一个页面,用一下 Page ... 给它一个空白的对象 .. 页面的界面需要一个 wxml 文件 .. 在 index 下面,创建一个 index.wxml ..

这里的东西跟 html 很像 .. 这里可以使用小程序提供的一些组件 .. 这些组件就像是 html 里的元素,或者叫标签 ..

这里用一个 view 组件,包装一下 text 组件 .. 在这个 text 组件里可以放点文字 .. 比如 hello ~

view 组件就像是 html 里的 div 元素 .. 是一个包装元素 ..

现在我们的小程序的首页上,会显示一个 hello ~ ,显示的内容是小程序里的 index 页面里提供的 ..

来自 https://ninghao.net/video/5058#info

3) 小程序的样式:wxss
 

小程序里面用的样式叫 wxss, wx 表示微信,ss 是 style sheets .. 它跟我们平时用的 css 差不多 .. 你可以把它理解成微信小程序定制版的 css ...

在小程序的有个主要的样式文件,每个页面也可以有属于自己的样式文件 .. 打开 index 页面的 wxml 文件 .. 在这个 view 组件上面,可以用一个 class ,在组件上面添加一个类 .. 名字是 container .. 这个 container 类的样式在其它页面上也应该会用到 .. 所以我们可以把它的样式定义到小程序的主样式文件里 ..

在小程序的根目录下面,创建一个样式文件 .. 名字是 app.wxss .. 小程序的主样式文件必须是这个名字 .. 添加一个 .container .. 作为样式的选择器 ..

先把组件的 box-sizing 的值设置成 border-box .. 再设置一下它的 height ,也就是高度 .. 值可以是 100vh ..

再用一个 padding ,添加一点边距 .. 值是 8px .. 然后用一个 background 属性,设置一下页面的背景 .. #f8f8f8 ...

再设置一下文字的样式,用一个 color 属性,值可以使用 rgba 来表示 .. 颜色是黑色 .. 不透明度设置成 0.85 ...

现在我想让页面上的内容水平还有垂直都居中 .. 我们可以使用 css 的 flexbox 去实现 .. 先改造一下页面的 wxml .. 在这个 view 组件上面,再添加两个类 .. vertical centered .. 然后在它里面再嵌套一个 view 组件 ..

回到小程序的主样式文件 ... 先定义一下 .centered 这个类的样式 .. 如果组件上带这个样式,我们就让它水平居中 .. 把组件的 display 的值设置成 flex ,让它变成一个 flexbox ..

flex-direction 的值设置成 column ... 然后再设置一下它里面的元素的对齐 ... 用的是 align-items ... 设置成 center ..

你会看到,现在页面上的这个元素会水平居中显示 ..

再添加一个样式选择器 .. 同时带 .vertical 还有 .centered 类的组件 .. 设置一下它的 view 这个子元素的样式 ..

把这个组件也设置城 flexbox ... display: flex ... 然后把 height 的值设置成 100vh .. 再把 flex-direction 设置成 row .. 最后再用 align-items .. 让组件居中对齐 ...

现在页面上的这个组件会水平居中,同时也会垂直居中 ..

小程序页面上共用的样式,你都可以把它放在这个 app.wxss 文件里面 .. 这样你就可以在小程序的所有的页面上使用在这个文件里定义的样式 ..

页面样式

每个页面也可以有自己单独的样式 .. 比如我们给这个 index 页面创建一个样式文件 .. 文件的名字应该就是页面的名字 .. 这里就是 index,后缀是 wxss ..

在打开页面的 wxml 文件 .. 在这个 text 组件上面,添加一个类 .. 名字是 header ... 我们把这个 header 的样式放在页面的样式文件里 ... 一个 .header ... 用一个 font-size 设置一下字号 ... 再用一个 font-family 设置一下字体 ..

来自 https://ninghao.net/video/5059#info


4) 小程序的窗口配置:window
 

小程序的相关配置都在 app.json 这个文件里面 .. 之前我们在这里用了一个 pages ,给小程序添加了一个页面 .. 就是这个 index ...

小程序窗口相关的配置可以放在 window 里面 .. 添加一个 window .. 然后可以使用不同的配置选项去配置小程序的窗口 .. 具体可以使用的配置选项你可以参考小程序的开发文档 ..

先用一个 navigationBarBackgroundColor .. 它可以设置导航栏的背景颜色 .. 默认是黑色 .. 这里我们把它设置成白色 ..

再用一个 navigationBarTitleText .. 设置一下导航栏上要显示的文字 .. ninghao.net .. 默认文字的颜色是白色,所以我们看不到文字 ..

设置导航栏的文字颜色用的是 navigationBarTextStyle .. 它可以是 white 白色,也可以是 black .. 黑色 ..

下面再用一个 enablePullDownRefresh .. 下拉刷新 .. 默认它的值是 false .. 不使用下拉刷新 .. 现在我们把它设置成 true ..

到模拟器上试一下 .. 向下拉动页面,会露出一个加载图标 .. 不过因为颜色是亮色,我们的背景也是亮色,所以没看到这个加载图标 ..

添加一个 backgroundTextStyle ,设置一下窗口背景文字的样式 .. 可以是 light ,也可以是 dark .. 这里我们设置成 dark .. 因为窗口背景颜色是亮色的 ..

可以再添加一个 backgroundColor 设置一下窗口背景的颜色 .. #ededed ..

再到模拟器上试一下 .. 向下拉动页面 .. 会露出一块 .. 这块区域的背景就是 backgroundColor 设置的 ..

这个下拉刷新的行为我们会在后面介绍到 ..

来自 https://ninghao.net/video/5060#info

5) 小程序的标签配置:tabBar - 准备
 

你可以为小程序添加一个标签栏 .. 上面会显示一些标签,点击不同的标签可以打开不同的页面 .. 在添加这个标签栏之前我们先去下载几个小图标,一会儿会在标签栏上用到 ..

http://github.com/ninghao/ninghao-icons

打开一个 github 仓库 .. ninghao-icons ... 选择下载 zip 格式的压缩包 ...

解压一下 ... 把 weixin .. app 下面的小图标 .. 放到我们的小程序项目里面 .. 可以先新建一个目录 .. 名字是 assets ... 再创建一个 icons ..

然后把下载的 app 小图标放到这个目录的下面 ...

标签栏上的每个项目都会对应一个页面 ... 最少要有两个项目,最多可以放五个项目 .. 先去新建一个页面 .. 直接复制一下 pages 下面的 index 目录 ..

名字是 event .. 再修改一下里面的文件名 ... 都把它们改成 event ...

打开这个 event.wxml ... 修改一下页面上显示的这个文字 ... 设置成 events !

来自 https://ninghao.net/video/5061#info

6) 小程序的标签配置:tabBar
 

小程序的标签栏要在小程序的主配置文件 app.json 里面配置一下 .. 添加一个 tabBar ... 给它一个对象 .. 里面可以使用一些配置选项 .. 具体的选项可以参数小程序的开发文档 ..

标签栏上的项目可以放在一个 list 里面 .. 它是一个数组 ... 每个项目又是一个对象 .. 先用 text 这个属性,可以设置一下标签项目上显示的文字 ..

先给首页添加一个标签项目 ... 标签上的文字是 首页 .. 点一下标签打开的页面可以使用 pagePath 这个属性配置一下 .. 首页的路径是 pages/index/index ..

复制一份,再添加一个标签项目 .. 这个项目是 活动 ... 页面的路径是 pages/event/event

演示

你会发现,在小程序的底部现在会显示一个标签栏 .. 上面有两个项目 .. 首页,还有 活动 .. 点一下活动 .. 打开的就是用 pagePath 指定的页面 ..

不过这里在控制台上提示一个错误 .. 说 event 页面在 app.json 里面没找到 .. 回到 app.json .. 打开 pages ... 这里我们再添加一个页面 .. 路径是 pages/event/event ..

然后再回到模拟器上试一下 ... 打开 活动 ... 页面上会显示一个 events ! 这个页面上显示的内容就是 event 页面提供的 ..

图标

标签项目上除了文字还可以添加一个小图标 .. 可以使用 jpg 或者 png 格式的图像文件 .. 在一个项目里用一下 iconPath .. 这个属性的值就是标签项目上用的小图标的位置 ..

之前我们已经下载了一些小图标,把它们放在了 assets .. icons 这个目录里了 .. 这里有个 home.png ,可以让它作为首页标签项目上显示的小图标 ..

另外我们还可以单独设置一下当前激活状态下的小图标 .. 添加一个 selectedIconPath .. 对应的值也是一个图标的位置 .. 这里我们用一下 home-active.png ..

同样的方法再处理一下活动这个标签项目 .. 图标是 event.png ... 激活状态的图标是 event-active.png ..

演示

再到模拟器上看一下 .. 现在标签栏上的项目会显示一个小图标 .. 切换一下标签 .. 正常状态还有激活状态,标签项目会使用我们指定的不同的小图标 ..

样式

现在我们再去配置一下这个标签栏的样式 .. 先用一个 color .. 它设置的是标签栏上的文字的颜色 .. 可以用一下 rgba 来表示的颜色 .. 颜色是黑色 .. 不透明度是 0.6 ..

再添加一个 selectedColor .. 它可以设置激活状态下的标签项目上的文字的颜色 .. 可以使用纯黑色 ..

borderStyle 可以设置标签栏上的边框的样式 .. 只能是 black 或者 white .. 这里我们把它设置成 white

然后用一个 backgroundColor ... 设置一下标签栏的背景颜色 .. #ededed ...

再到模拟器上预览一下我们配置好的这个标签栏 ...

来自 https://ninghao.net/video/5062#info

App
7) App:小程序的生命周期函数

一开始我们在小程序的 app.js 里面,使用这个 App 方法注册了一个小程序 .. 注册的时候给了它一个空白的对象 .. 在这个对象里,可以添加一些东西 .. 比如小程序的生命周期函数 ..

这些函数就是在小程序的不同阶段自动被调用的函数 ... 在这个给 App 的对象里面,我们可以用一下这些生命周期函数 ..

先添加一个 onLaunch ,它会在小程序初始化以后被执行,这里用一个 console.log 在控制台上输出一个 初始化 .. 再添加一个 onShow ,这个函数会在小程序启动以后,或者小程序从后台进入到前台的时候被执行 ... 输出一个 显示 ..

还有 onHide ... 它会在从前台进入到后台的时候执行,进入后台以后,我们在控制台上输出一个 隐藏 .. 还有一个 onError ,在小程序出现错误的时候会执行这个函数 .. 给它一个错误信息作为它的参数 .. 然后在控制台上输出这个错误信息 ..

回到开发者工具 ... 现在小程序已经初始化并且进入到了前台 .. 所以会执行 onLaunch 还有 onShow ... 在控制台上会输出一个 初始化,还有显示 ..

我们可以让这个小程序进入到后台 .. 点一下开发者工具边栏上的这个 后台 .. 这样会模拟小程序进入后台的情景 .. 进入后台以后,会执行 onHide .. 我们做的事就是在控制台上输出一个 隐藏 ...

这里会出现一些场景 .. 先随便选择一种场景 ... 小程序又重新进入前台运行 .. 这样又会执行 onShow ... 在控制台上会输出一个 显示 ..

参数

这个 onLaunch 还有 onShow 都支持一个 options 参数 .. 这个 options 里面会带一些有用的信息,你可能会在 onLaunch 或者 onShow 里面用到 ..

在 onLaunch 方法里面,先添加一个 options .. 然后在控制台上再输出这个 options ...

再给 onShow 也添加一个 options .. 同样在控制台上输出 options 里的东西 ..

再回到开发者工具 .. 在初始化这几个字的下面,输出的就是 onLaunch 里的 options 参数 .. 它是一个对象 .. 里面有一些属性 .. path 表示的是小程序的路径 .. scene 这个属性的值表示不同的场景 ..

显示,这两个字下面的东西是 onShow 函数里的 options 参数的值 .. path 现在显示的是首页 .. scene 的值是 1001 ..

我们再打开 活动 这个标签 .. 然后让小程序进入到后台 .. 这里会出现一个场景列表 .. 它表示的进入小程序前台的不同的方式 ..

比如 1001 这个场景值表示的就是 发现栏小程序主入口 .. 这里我们选择下面这个 1005 ..

再看一下 onShow 的 options 参数 .. 现在 path 的值是活动页面的路径 .. scene 的值是 1005 ... 之前它的值是 1001 .. 我们可以在生命周期函数里根据这些选项的值去做不同的事情 ..

来自 https://ninghao.net/video/5064#info

8) 打开小程序的调试功能
 

小程序有个调试功能,打开以后会在控制台上输出一些帮助信息 .. 告诉你小程序都做了什么 ... 打开这个调试功能,可以修改一下小程序的主配置文件 ... app.json ..

这里可以添加一个 debug ... 表示调试,把它的值设置成 true ... 意思就是打开小程序的调试功能 ..

回到开发者工具 .. 在调试这里,打开 Console ... 控制台 .. 在控制台上会显示小程序都做了什么 .. 一开始说 App 的 onLaunch have been invoked ,执行了应用的 onLaunch ..

然后又执行了 App 的 onShow ..

Register Page ,注册了 index 还有 event 这两个页面 ..

On app route ,表示我们现在在哪个地址 .. update view with init data ,使用初始化数据更新视图 ..

然后当前页面的 onLoad have been invoked ,执行了页面的 onLoad .. 接着又执行了页面的 onShow .. 这时候页面已经显示了 .. 页面上现在发生了一个 onReady 事件 .. 然后执行了页面的 onReady 函数 .. onLoad,onShow,onReady 这些都是页面的生命周期函数 ..

打开 活动 标签 .. 控制台上又会出现一些调试信息 .. on app route ,现在我们是在 event 这个页面 .. 执行了 index 页面的 onHide .. 因为之前的 index 页面被隐藏了 ..

然后又初始化数据更新视图 .. 执行页面的 onLoad 还有 onShow .. 页面上发生 onReady 事件,又执行了 onReady 函数 ..

来自 https://ninghao.net/video/5065#info

9) 小程序的全局数据与页面初始化数据
 

在应用里面可以添加点全局数据 .. 这些数据可能来自你的应用后台,或者是一些外部服务 .. 你可以在小程序的生命周期方法里面,去得到这些数据,再让它们作为全局数据 ..

在注册小程序的时候,给它添加一个 globalData ,表示全局数据 .. 里面随便添加点东西 .. 比如 greeting .. 对应的值是 hello ~

在页面上我们可以得到小程序实例,这样就可以访问小程序的全局数据了 .. 比如打开 index 页面 .. 添加一个 app .. 它的值可以用一下 getApp 这个函数 .. 这个函数会返回小程序实例 ..

注册页面用的是 Page .. 在给它的对象参数里面,可以添加一个 data 属性 .. 它里面的东西就是页面的初始数据 .. 添加一个 greeting ... 对应的值就是小程序里的 globalData 里的 greeting ..

现在我们可以在页面的视图文件里用一下页面上的这个 greeting 数据 .. 去掉这个静态的 hello ~ .. 两组大括号 .. 绑定一个数据 .. 里面输出的是页面上的 greeting .. 保存一下 ..

你会看到,首页上仍然会显示一个 hello ~ ,这个 hello 是页面的初始数据里的 greeting 属性的值,这个属性的值其实是小程序的全局数据里的 greeting 的值 ..

来自 https://ninghao.net/video/5066#info
 

Page
10) Page:页面的生命周期

注册页面了用的是 Page 这个函数 .. 在它里面可以添加页面的初始数据,页面的生命周期函数,还有跟页面相关的事件处理函数 ..

先在这里添加一些页面相关的生命周期函数 .. 使用这些函数你可以在页面的不同阶段去做你需要做的事情 .. 添加一个 onLoad .. 页面加载以后会执行这个函数 .. 输出一个 页面加载 .. 再添加一个 onShow .. 显示页面的时候会执行它 .. 输出一个 页面显示 ..

页面第一次完成渲染以后,会执行 onReady 这个函数 .. 输出一个 页面首次渲染完成 ..

再添加一个 onHide ... 隐藏页面的时候会执行这个函数 ... 这个时候我们输出一个 页面隐藏 ..

还有一个 onUnload .. 在卸载页面的时候会执行这个 onUnload 方法 .. 输出一个 页面卸载 ..

再复制一下这些页面的生命周期函数 .. 打开 event 这个页面 ... 粘贴到这个 event 页面的注册函数里 ..

然后到开发者工具上看一下 ...

在控制台上找到页面相关的信息 .. 首先页面会用初始化数据更新视图 .. 当前是在 index 这个页面上,所以接着又执行了这个页面上的 onLoad .. 我们让小程序做的事就是在控制台上输出一个 页面加载 ..

又会执行这个页面上的 onShow .. 这里输出了一个页面显示 .. 然后触发 onReady 事件 .. 执行了 onReady 函数 .. 输出了一个页面首次渲染完成 ..

再打开 活动 这个页面 ..

之前显示的 index 页面会执行 onHide .. 显示页面隐藏 .. 然后又会进行活动页面的生命周期 ..

再切换到 index 页面 .. 这回只会执行 event 页面上的 onHide .. 还有 index 页面的 onShow ..

来自 https://ninghao.net/video/5068#info

11)页面事件处理

在小程序的配置文件 app.json 里的 window 配置选项里面,之前我们已经把 enablePullDownRefresh 的值设置成了 true ,表示启动页面的下拉刷新功能 ..

具体在页面上下拉刷新要做的事,可以放在页面的 onPullDownRefresh 这个函数里面去做 .. 打开 index 这个页面 .. 添加一个 onPullDownRefresh 函数 ..

先简单的在控制台上输出一个 页面下拉刷新 .. 在真正应用的时候,你可能需要在这里去到后端服务那里拉取最新的数据,然后把更新之后数据再放到页面的数据里 .. 这样视图会重新渲染,显示更新之后的数据 ..

滚动到页面的底部以后,会执行 onReachBottom .. 添加一个 onReachBottom ... 输出一个 页面到底儿了 ...

在滚动页面的时候,会执行 onPageScroll .. 这个方法有个对象参数,这里我们可以叫它 calculations .. 在控制台上输出这个 calculations ..

下面可以在页面上添加一张图片 .. 打开这个 github 仓库
https://github.com/ninghao/ninghao-images
.. ninghao-images .. weixin .. app .. 把这里的 landscape.png 下载到我们的项目里 .. 放在 assets 下面 .. 新建一个目录 .. 名字是 images .. 然后把下载的图像放到这个目录的下面 ..

打开 index 页面的视图文件 .. 先添加一个 view 组件 .. 里面包装一个 image ,它可以显示图像 .. 添加一个 src 属性,指定一下要显示的图像的位置 .. /assets/images/landscape.png ..

在这个 view 组件上面添加一个类 .. 名字是 image ..

再打开小程序的样式文件 .. 添加一个 .image > image .. 设置一下 image 这个类的 image 这个子组件的样式 .. 把 width 设置成 100% ..

这个 container 样式也可以再修改一下 .. 把 height 的值设置成 80vh ..

预览

下面可以到微信的开发者工具去预览一下 ... 先向下拉动页面 ... 会触发执行页面的 onPullDownRefresh .. 在控制台上输出了一个 下拉刷新页面 ..

然后向下滚动页面 ..

这样会执行页面的 onPageScroll ... 这个函数的参数是个对象 .. 它里面有个 scrollTop .. 它表示就是页面垂直已经滚动的距离 .. 这个值的单位是 px .. 就是像素 ..

滚动到页面最底部的时候,执行了页面上的 onReachBottom .. 在控制台上会输出一个 页面到底儿了 ..

下面我们可以再把添加在 index 页面上的这个图像 .. 放到 event 页面上 ...

再回到开发者工具,可以预览一下 ..

来自 https://ninghao.net/video/5069#info

12)设置页面数据:setData

先打开 index 页面 .. data 里面的东西是初始化的数据 .. 这里我把在小程序全局数据里的 greeting 放到了页面上的这个 greeting 里了 .. 然后在页面的视图文件里,绑定输出了这个数据 ..

现在我们可以改进一下 .. 打开 app.js .. 改造一下 globalData 里的这个 greeting .. 让它变成一个数组 .. 数组里面有几个项目 .. 就是一些问候的单词 .. hello ~ .. hola ~ 您好 ~

回到 index 页面 .. 在这个 Page 里面先添加一个自定义的方法 .. 名字是 greet .. 接收一个参数叫 greeting ..

这个方法做的事就是返回一个随机的数组项目 .. 数组是 greeting .. 一组方括号 .. 用一下 Math 的 random 方法 .. 用它乘以数组的长度 .. .. 再用 Math 的 floor 方法处理一下这个结果 ..

return greeting[Math.floor(Math.random() * greeting.length)]

得到这个随机的数组项目以后,我们要把它放到页面的 data 里面 .. 可以在这个 onLoad 方法里,用一下 this.setData 去设置一下 .. 设置的是页面的 greeting 数据 .. 它的值可以用一下 this.greet 这个方法得到 .. 把数组交给这个方法 ... 这里就是小程序全局数据里的 greeting ..

现在我们可以让这个 greeting 的初始值等于一个空白的字符 ..

再到开发者工具上去试一下 ... 刷新页面 ...

现在 index 页面加载以后,上面显示的问候语会随机地发生变化 ...

来自 https://ninghao.net/video/5070#info

13)在页面视图上绑定事件
在页面的视图界面上绑定一些事件,比如 tap ,touchstart,touchmove,touchend 等等 .. 绑定的事件可以指定一个事件处理,然后在页面里可以定义需要的事件处理方法 ..

打开 index 页面的视图文件 .. 在这个绑定 greeting 数据的 view 包装的上面,可以绑定一个事件 .. 绑定事件先要用一个 bind 后面加上事件的名字,比如这里我们绑定一个 tap 事件,这里就要用一下 bindtap ..

它的值就是处理这个事件的方法 .. 比如我们叫它 tapGreeting ..

然后打开页面的主逻辑文件 .. 在 Page 函数里面,添加一个 tapGreeting 方法 .. 它接受一个事件参数 .. 名字可以是 event ... 在控制台上输出这个 event 对象 ..

下面再用一下 this.setData 去设置一下页面的 greeting 数据 .. 使用 this.greet 这个方法 .. 把全局数据里的 greeting 交给 greet 方法 .. 这个方法会返回数组里的一个随机的项目 ..

演示

保存文件 .. 回到开发者工具 .. 点一下 index 页面上的这个问候语 .. 这样会随机在页面上显示一个问候语 ..

在控制台会输出发生的事件对象 ..

在事件处理函数里面,你可以利用这个对象里的一些数据,去做一些事情。

来自 https://ninghao.net/video/5071#info

模块
14)创建与使用模块
在小程序里面重复使用的一些功能,我们可以单独拿出来,把它定义成一个模块 .. 然后在需要的地方可以导入这个模块提供的功能 ..

之前我们在 index 页面里面,添加了一个方法是 greet ... 它做的事其实就是返回数组里的一个随机的项目 .. 在其它的地方也可能会用到这个功能 .. 所以我们可以把它拿出来放到一个模块里 ..

剪切一下 ..

添加一个文件 .. 放在 libs/helper 的下面,名字可以是 helper.js ..

在这个文件里先添加一个 const helper .. 它的值是个对象 .. 再把刚才剪切的 greet 方法放进来 .. 这里可以修改一下方法的名字,让它更有意义一些 ... 比如 randItem .. 接收的参数是 items ... 再改造一下函数的主体部分 ..

最后我们可以导出在这个文件里定义的 helper ... export { helper as default } 让 helper 作为默认的导出 ..

再回到 index 页面 .. 这里我需要用到 helper 模块里定义的 randItem 方法 .. 先导入这个模块 .. import helper from .. 上一级目录的上一级目录里的 libs 下面的 helper 里的 helper.js ..

然后把之前使用 greet 方法的地方,修改成 helper.randItem

保存一下文件 ..

到开发者工具再去试一下 ... 点一下页面上的问候语 .. 会随机显示一个问候语 ... 这个随机返回数组项目的功能,是在我们定义的一个模块里提供的 ...

在 index 页面,我们使用了这个模块提供的这个功能 ..

来自 https://ninghao.net/video/5073#info

 

普通分类: