使用framework7总结

中文官网

1.布局 项目布局可以参照官方文档自行组合,但一定要注意严格按照层级结构和类命名来拆分和组合。

2.<template></template>中的{{#each}}{{/each}}取值问题

比如data中取到的值是这样的:

data: function () {
  return {
    id: 001,
    arr:[{k:'k1',v:'v1'},{k:'k2',v:'v2'}]
   }
}


那么,在遍历arr的each语句中要取值取到id可以这样操作:

{{#each arr}}
   <p>k值:{{this.k}}</p>
   <p>v值:{{this.v}}</p>
   <p>id:{{../id}}</p>
{{/each}}


3.checkbox初始化、默认选中、正确监听

<label class="item-checkbox item-content" @change="selectItem">
     <input type="checkbox" class="checkItem" name="checkItem" value="{{key}}" {{#if selected}}checked="checked"{{/if}} /> //默认选中
     <i class="icon icon-checkbox"></i>
     <div class="item-inner">
         <div class="item-title">{{key}}</div>
     </div>
</label>


默认不选中,则checked="checked"去掉即可,写成checked="false"无效。

正确监听(如果直接取值$$('.className')[0].checked,有时候反复勾选获取到的值不准确):

methods: {
   selectItem: function (e){
      var self = this;
      var $ = self.$$;
      console.log(e.target.checked);//监听是否选中true or false
   }
}


4.页面间传值

<a href="/mySecondPage/?id=001&name=hello">跳转页面</a>


on: {
  pageInit: function (event, page) {
      var self = this;
      console.log(page.route.query.id);      //001
      console.log(page.route.query.name);   //hello
 }
}


5.无限下拉方法@infinite="loadMore"加载出来的数据初始长度必须超过一屏,可大致估计需要的数据长度,我这里是8条。

if(self.msgList.length > 0 && self.msgList.length < 8){    //初始长度不够时自动loadmore
    self.loadMore();
}



6.IOS顶部重叠问题

其实就是官方文档中说的这个问题

var app = new Framework7({
  statusbar: {
    iosOverlaysWebView: true,
  },
});



7.判断当前设备是Android还是IOS

文档地址

8.获取屏幕高度

var WIN_HEIGHT = $$(window).height();



9.回退、回退之后主页面刷新

常见应用场景:列表->详情编辑

//回退
<div class="navbar">
    <div class="navbar-inner">
         <div class="left">
             <a href="#" class="link" @click="back">
                <i class="icon icon-back"></i>
                <span>返回</span>
             </a>
         </div>
         <div class="title">详情</div>
         <div class="right"></div>
    </div>
</div>


back:function () {
 mainView.router.back()
}



回退列表页刷新,试过在back中加参数,但列表页取不到带过来的参数,于是直接在列表页处理了。

//列表页的初始化方法写在pageBeforeIn中
pageBeforeIn:function(event, page){
  var self = this;
  if(JSON.stringify(page.route.query) !== '{}'){  //可区分是直接进的列表页还是回退回的列表页
     //TODO
  }

  //init TODO
}



10.获取历史纪录

pageInit: function (event, page) {
   var arr = page.router.history; //历史纪录
   var prePage = page.router.history[page.router.history.length-2];   //上一页
   var currPage = page.router.history[page.router.history.length-1];  //本页
}


11.Scrollable Tabbar可滚动导航栏显示不完整问题

官网中的可滚动导航栏存在后面的tab项看不完整的问题,如下图 官网示例

解决方案:

//点击Tab4或Tab5时触发
$('.tabbar-scrollable .toolbar-inner').scrollLeft(1000);    //顶部导航定位到后面

 

12.低版本ios(大概10以下)和安卓(大概5.2以下)真机出现白屏现象的原因

检测是否有es6语法,如果有,手动改成es5或者引入相关插件转换

转载于:https://my.oschina.net/AnymoreCoder/blog/2872685

在Vue 3中使用Framework7,你需要按照以下步骤进行设置: 1. 在App.vue文件中导入router.js,并在template中添加相应的代码来设置页面结构和路由。你可以使用`<f7-app>`组件来创建一个Framework7应用,并在其中添加`<f7-view>`组件来显示页面内容。同时,你还需要在`<script>`标签中导入路由配置并将其赋值给`routes`属性。具体的代码示例可以参考引用\[1\]中的代码。 2. 在Tabs.vue文件中,你可以使用`<f7-page>`组件来创建一个页面,并在其中添加`<f7-toolbar>`组件来创建一个底部的标签栏。你可以使用`<f7-link>`组件来创建每个标签,并使用`route-tab-id`属性来指定对应的路由。同时,你还需要使用`<f7-tabs>`组件来创建可切换的标签页。具体的代码示例可以参考引用\[2\]中的代码。 3. 如果你需要在父组件中向子组件传递数据,你可以使用Vue 3的props属性来实现。在父组件中,你可以使用`<HelloWorld>`组件,并通过props属性将数据传递给子组件。具体的代码示例可以参考引用\[3\]中的代码。 总结起来,你需要在Vue 3中导入Framework7的相关组件,并根据需要设置页面结构、路由和数据传递。希望这些信息对你有帮助! #### 引用[.reference_title] - *1* *2* [vue使用Framework7记录(一):基础配置](https://blog.csdn.net/zhuxiandan/article/details/90769434)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【framework-1】在vue3里使用rxjs hot observable进行父子通信](https://blog.csdn.net/dangbai01_/article/details/126031867)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值