framework7 入门(数据获取和传递)
数据获取
framework7自带request方法 ,
var app = new Framework7({
...
});
app.request(parameters)
或者
Framework7.request(parameters)
两者都一样
一个完整的请求可能长下面这样
app.request.get(url, data, success, error, dataType)
app.request.get("res.xxx", {name:'xxx'}, function(data){
console.log(data);
}, function(){
console.log("获取数据失败");
}, 'json');
并不推荐这种方式
推荐下面这种,清晰明了
app.request.get({
url:"res.xxx",
data:{name:"xxx"},
success:function(data){
console.log(data)
},
error:function(){
console.log("数据获取失败")
},
dataType:"json"
});
获取数据之后就要传数据,有几种方法
通过路由
framework7给路由提供一个async方法
routes:[
{
path: '/about/', //componentUrl:"./pages/about.html",
async: function (routeTo, routeFrom, resolve, reject) {
app.request.get('res.xxx', function (data) {
resolve(
{
componentUrl:"./pages/about.html"
},
{
context: { //传数据
users: data,
},
}
);
});
}
}
]
注意,除非你在 async 方法中执行了resolve或reject,否则路由请求将会中断!
about.html 是个 template组件,所以routers 长这样
{
path:'xxx',
componentUrl:"xxx.html"
}
如果是个完整的html
{
path:'xxx',
url:"xxx.html"
}
还有一些别的参数,参考官方文档
async方法可以用在 当用户未登录时拦截跳转,然后导航到登录页
在about.html页我们可以取到这个users
<template>
<div class="page">
about
<h1>{{Name}}</h1>
</div>
</template>
<style></style>
<script>
return{
data:function(){ //数据相关
let name=this.$route.context.users;
return { //返回要绑定的数据
Name:name
}
}
}
</script>
还可以放在data里
return{
data:function(){
app.request.get({
url:"xxx",
...
success:function(data){
var name=data.name;
}
});
return {
Name:name
}
}
}
看看return
return{
data:function(){
...
},
methods:{
showHello:function(){
app.dialog.alert("Hello");
}
},
on:{ //on里面的函数,在不同的生命周期执行
pageMounted:function(e){},
pageInit:function(e){
this.showHello();
},
pageBeforeIn:function(e){},
pageAfterIn:function(e){}
}
}
这两种方法会有点问题,当你获取数据很慢时,会发现你能在pageInit里打印出data,但没法绑到页面上,原因在于取到data时 ,页面已经渲染完成,不会重新渲染,直到3.31版加了个$setState方法,
return{
data:function(){
return {
Name:""
}
},
methods:{
getData:function(func){
app.request.get({
url:"res.xxx",
...
success:function(data){
func(data);
}
});
}
},
on:{
pageInit:function(){
let self=this;
self.getDate(function(data){
self.$setState({
Name:data.name
});
});
}
}
}
这样就不用担心dom渲染完而数据还没取到
$setState是用VDOM实现的。我理解的是,页面渲染时生成一个dom树,执行$setState时,会在内存中生成一个dom树,然后对两个dom进行对比,用内存中变化的节点替换浏览器中原来的节点,然后让浏览器重新渲染这个节点。
framework7 入门(数据获取和传递)的更多相关文章
- Entity Framework7 入门之全功能.NET版本下使用EF7(含源码)另附数据迁移常见错误处理
Entity Framework7 入门之全功能.NET(Console, WinForms, WPF等)使用EF7 昨天,我们介绍了EF的新特性和开发计划,如果你还不了解,请移步 Entity Fr ...
- (二)cordova+framework7入门——笑笑APP
[前言] framework7确实做的很赞,但是一直各种原因没有做什么app, 这个感觉就像大厨遇到百年难见的好材料,不炒个菜憋的慌, 机缘巧合周一周二两个晚上做了一个简单app,先看下效果: ios ...
- Entity Framework7 入门之全功能.NET(Console, WinForms, WPF等)使用EF7
昨天,我们介绍了EF的新特性和开发计划,如果你还不了解,请移步 Entity Framework7 有哪些不同?现在开发到什么程度了? .今天,我们开学习全功能.NET(Full .NET)下使用EF ...
- Framework7 - 入门教程(安装、配置、创建一个H5应用)
1,Framework7介绍 (1)Framework7 是一个开源免费的框架.可以用来开发混合移动应用(原生和 HTML 混合)或者开发 iOS & Android 风格的 WEB APP. ...
- framework7 入门(数据绑定)
数据绑定是用template7,官网,framework7内置template7,不用单独下载,下面介绍一些简单的绑定 当你的数据是个数组 return{ data:function(){ let i ...
- framework7 入门(基础布局)
个人认为framework7是个很好的移动端框架,自带路由.下拉刷新.无限加载.时间线.各种dialog.环形图等,基本能满足大部分app的需求,可以和vue,webpack 等各种搭配. 这里讲一下 ...
- dubbox ExceptionMapper Filter request response 数据获取 数据传递
dubbx虽然是基于jboss的resteasy实现restfull,但是对resteasy原生的配置却不支持(可能是考虑到dubbo本事的设计模式及实现难度,但是和大部分framework的设计风格 ...
- 前端移动框架Framework7入门
正版官网:https://framework7.io/ (英文) 对应国内:http://www.framework7.cn/ (中文) 本地构建步骤(Demo级别) 1.HTML结构 2.引入Fr ...
- Ember.js入门教程、博文汇总
第一章 对象模型 Ember.js 入门指南——类的定义.初始化.继承 Ember.js 入门指南——类的扩展(reopen) Ember.js 入门指南——计算属性(compute properti ...
随机推荐
- ftp和mysql数据库结合使用
问题描述: 看下 1.1.1.1 的ftp为什么连不上 报错的信息: 'ftpServer' => '1.1.1.1', // FTP服务器地址 ', 'ftpUsername' => ' ...
- 开源智能英文单词提取翻译工具(C#)
WordsTool 这个工具用于分析文本文件中所有的英语单词 并且通过内置字典数据库工具对这些单词进行解析 可以生成表格形式 并且支持导出到excel文件中 用于学习单词 本代码禁止商业用途 如需要商 ...
- vertical-align作用的前提++图片不上下居中
5.3.2 vertical-align作用的前提 很多人,尤其CSS新手,会问这么一个问题:“为什么我设置了vertical-align却没任何作用?” 因为vertical-align起作用是有前 ...
- 树链剖分——边权poj2763
边权操作起来也和点权一样,只要把边的权值映射到点上即可,要注意的地方是向上爬的过程中和点权不太一样,还有个特判(WA了几次..) 完整代码 #include<cstring> #inclu ...
- lombok @Accessors用法
@Accessors 翻译是存取器.通过该注解可以控制getter和setter方法的形式. fluent 若为true,则getter和setter方法的方法名都是属性名,且setter方法返回当前 ...
- composer操作简单解析
1. composer配置中国镜像 #使用命令: composer config -e#修改composer.json 添加如下代码 { "repositories": [ { & ...
- 饮冰三年-人工智能-Python-30 python开发中常见的错误
1:触发条件:创建的实体类生成到数据库表时报错 报错信息:TypeError: __init__() missing 1 required positional argument: 'on_delet ...
- ajax导致Echarts不显示饼图数据、柱状图数据只显示气泡的问题。
1.ajax导致Echarts不显示饼图数据.柱状图数据只显示气泡的问题. ajax的同步.这个同步的意思是当JS代码加载到当前ajax的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个aj ...
- Flink消费Kafka数据并把实时计算的结果导入到Redis
1. 完成的场景 在很多大数据场景下,要求数据形成数据流的形式进行计算和存储.上篇博客介绍了Flink消费Kafka数据实现Wordcount计算,这篇博客需要完成的是将实时计算的结果写到redis. ...
- Flink+kafka实现Wordcount实时计算
1. Flink Flink介绍: Flink 是一个针对流数据和批数据的分布式处理引擎.它主要是由 Java 代码实现.目前主要还是依靠开源社区的贡献而发展.对 Flink 而言,其所要处理的主要场 ...