• 微信小程序------框架


    目录

    视图层

    WXML

    数据绑定

    列表渲染

    条件渲染

     模板

    wsx事件

    逻辑层

    生命周期

     跳转


    视图层

    WXML

    WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件事件系统,可以构建出页面的结构。

    先在我们的项目中增加四个界面,分别是a,b,c,d.(名字可以根据自己来)

    在项目的主体中找到 app.json 这个文件进行增加以上四个文件。

    在该文件中找到 pages ,输入"pages/a/a"会自动生成

    数据绑定

    在我们的创建的a.wxml页面中编写代码

    然后去我们的a.js的data中编写代码

    在模拟器中可以看到的效果

    列表渲染

    接着在我们的a.wxml中编写代码

     再在我们的a.js中编写代码

    效果

    条件渲染

    再去我们的a.wxml中编写代码

    再回到a.js中的data编写代码 

    效果

     

     模板

    在a.wxml中编写代码

    1. <text>pages/a/a.wxmltext>
    2. <view>{{message}}view>
    3. <view wx:for="{{array}}"> {{item}} view>
    4. <view wx:for="{{users}}" wx:key="id">用户编号: {{item.id}}; 用户姓名:{{item.name}} view>
    5. <view wx:if="{{view == '1'}}"> 喜羊羊 view>
    6. <view wx:elif="{{view == '2'}}"> 美羊羊 view>
    7. <view wx:else="{{view == '3'}}"> 沸羊羊 view>
    8. <template name="staffName">
    9. <view>
    10. FirstName: {{firstName}}, LastName: {{lastName}}
    11. view>
    12. template>
    13. <template is="staffName" data="{{...staffA}}">template>
    14. <template is="staffName" data="{{...staffB}}">template>
    15. <template is="staffName" data="{{...staffC}}">template>

    再回到a.js中的data编写代码

    效果

     

    wsx事件

    在a.wxml中编写代码

    1. <text>pages/a/a.wxmltext>
    2. <view>{{message}}view>
    3. <view wx:for="{{array}}"> {{item}} view>
    4. <view wx:for="{{users}}" wx:key="id">用户编号: {{item.id}}; 用户姓名:{{item.name}} view>
    5. <view wx:if="{{view == '1'}}"> 喜羊羊 view>
    6. <view wx:elif="{{view == '2'}}"> 美羊羊 view>
    7. <view wx:else="{{view == '3'}}"> 沸羊羊 view>
    8. <template name="staffName">
    9. <view>
    10. FirstName: {{firstName}}, LastName: {{lastName}}
    11. view>
    12. template>
    13. <template is="staffName" data="{{...staffA}}">template>
    14. <template is="staffName" data="{{...staffB}}">template>
    15. <template is="staffName" data="{{...staffC}}">template>
    16. <view id="tapTest" data-hi="Weixin" data-meetingSteate="6" bindtap="tapName"> Click me! view>

    去a.js中编写代码

    1. tapName: function(event) {
    2. console.log(event),
    3. console.log(event.target.dataset)
    4. },

    效果

    逻辑层

    生命周期

     跳转

    先在项目app.json中添加以下代码

    1. "tabBar": {
    2. "list": [{
    3. "pagePath": "pages/index/index",
    4. "text": "首页"
    5. }, {
    6. "pagePath": "pages/a/a",
    7. "text": "a页面"
    8. }, {
    9. "pagePath": "pages/b/b",
    10. "text": "b页面"
    11. }, {
    12. "pagePath": "pages/c/c",
    13. "text": "c页面"
    14. }, {
    15. "pagePath": "pages/d/d",
    16. "text": "d页面"
    17. }]
    18. },

    再回到a.wxml中编写代码

    1. <!--pages/a/a.wxml-->
    2. <text>pages/a/a.wxml</text>
    3. <view>{{message}}</view>
    4. <view wx:for="{{array}}"> {{item}} </view>
    5. <view wx:for="{{users}}" wx:key="id">用户编号: {{item.id}}; 用户姓名:{{item.name}} </view>
    6. <!--wxml-->
    7. <view wx:if="{{view == '1'}}"> 喜羊羊 </view>
    8. <view wx:elif="{{view == '2'}}"> 美羊羊 </view>
    9. <view wx:else="{{view == '3'}}"> 沸羊羊 </view>
    10. <!--wxml-->
    11. <template name="staffName">
    12. <view>
    13. FirstName: {{firstName}}, LastName: {{lastName}}
    14. </view>
    15. </template>
    16. <template is="staffName" data="{{...staffA}}"></template>
    17. <template is="staffName" data="{{...staffB}}"></template>
    18. <template is="staffName" data="{{...staffC}}"></template>
    19. <view id="tapTest" data-hi="Weixin" data-meetingSteate="6" bindtap="tapName"> Click me! </view>
    20. <button bindtap="a2b">a页面跳b页面</button>
    21. <button bindtap="a2c">a页面跳c页面</button>

     在a.js中编写代码

    1. // pages/a/a.js
    2. Page({
    3. /**
    4. * 页面的初始数据
    5. */
    6. data: {
    7. message:"俺可是懒大王",
    8. array:[1,2,3,4,5],
    9. users:[{id:1,name:'灰太狼'},{id:2,name:'红太狼'},{id:3,name:'蕉太狼'}],
    10. view:3,
    11. staffA: {firstName: '掌上明猪', lastName: '小黑猪'},
    12. staffB: {firstName: '无价之宝', lastName: '姿宝宝'},
    13. staffC: {firstName: '嘤嘤狂吠', lastName: '小黑狗'}
    14. },
    15. tapName: function(event) {
    16. console.log(event),
    17. console.log(event.target.dataset)
    18. },
    19. a2b:function() {
    20. wx.switchTab({
    21. url: '/pages/b/b',
    22. })
    23. },
    24. a2c:function() {
    25. wx.switchTab({
    26. url: '/pages/c/c',
    27. })
    28. },
    29. /**
    30. * 生命周期函数--监听页面加载
    31. */
    32. onLoad(options) {
    33. console.log("a.onload");
    34. },
    35. /**
    36. * 生命周期函数--监听页面初次渲染完成
    37. */
    38. onReady() {
    39. console.log("a.onReady");
    40. },
    41. /**
    42. * 生命周期函数--监听页面显示
    43. */
    44. onShow() {
    45. console.log("a.onShow");
    46. },
    47. /**
    48. * 生命周期函数--监听页面隐藏
    49. */
    50. onHide() {
    51. console.log("a.onHide");
    52. },
    53. /**
    54. * 生命周期函数--监听页面卸载
    55. */
    56. onUnload() {
    57. console.log("a.onUnload");
    58. },

    再去我们的c.wxml中编写代码

    1. <!--pages/c/c.wxml-->
    2. <text>pages/c/c.wxml</text>
    3. <button bindtap="c2b">c页面跳b页面</button>
    4. <button bindtap="c2d">c页面跳d页面</button>

    c.js中编写代码

    1. // pages/c/c.js
    2. Page({
    3. /**
    4. * 页面的初始数据
    5. */
    6. data: {
    7. },
    8. c2d:function() {
    9. wx.switchTab({
    10. url: '/pages/d/d',
    11. })
    12. },
    13. c2b:function() {
    14. wx.switchTab({
    15. url: '/pages/b/b',
    16. })
    17. },
    18. /**
    19. * 生命周期函数--监听页面加载
    20. */
    21. onLoad(options) {
    22. console.log("c.onload");
    23. },
    24. /**
    25. * 生命周期函数--监听页面初次渲染完成
    26. */
    27. onReady() {
    28. console.log("c.onReady");
    29. },
    30. /**
    31. * 生命周期函数--监听页面显示
    32. */
    33. onShow() {
    34. console.log("c.onShow");
    35. },
    36. /**
    37. * 生命周期函数--监听页面隐藏
    38. */
    39. onHide() {
    40. console.log("c.onHide");
    41. },
    42. /**
    43. * 生命周期函数--监听页面卸载
    44. */
    45. onUnload() {
    46. console.log("c.onUnload");
    47. },

    效果

     okok,今天就到这里啦,下班下班!!!!!!!!!!!!!!!!!!!!

  • 相关阅读:
    webpack简介
    基于Django + Web + MySQL的智慧校园系统
    pyqt5 嵌入WEB 并实现qt向web的通信
    数据可视化(一)
    leetcode 264.丑数
    目标检测:IOU
    ADB 操作命令详解及用法大全
    如何在 Vue.js 和 Nuxt.js 之间做出选择?
    Android Shimmer 布局微光(闪光,闪烁)效果
    Azure DevOps Pipelines部署.Net Core 应用到Kubernetes
  • 原文地址:https://blog.csdn.net/m0_74934282/article/details/133863683