小程序数据绑定和setData

我们wxml没有直接调用数据的能力,我们的逻辑是通过js调用数据,再由js传递给wxml才能够显示出来.那么怎么由js传递给wxml?

首先我的js里面有这样一段代码

process: function(){
  var date = ‘Nov 18 2019‘;
},

我需要将这个数据显示到wxml里面去。需要数据绑定,那么小程序里面的数据绑定是如何绑定到页面中的?我们只需要在data里面写上这个数据就可以数据绑定了。

js

data: {
  date: ‘Nov 18 2019‘
},

wxml

<text>{{date}}</text>

双花括号是数据绑定的基本语法。data是page里面比较特殊的一个变量,只有在data下面的数据才能够进行一个数据绑定,其他key里面不行

像小程序里面的这种数据绑定叫做单向数据绑定。就是js里面的变量的值变了,wxml会自动的变。但是如果wxml的数据变了,data里面的数据是不会自动的更新的。需要手动的设置

我们从服务器取数据一般是写在onLoad里面,我们模拟一段

onLoad: function (options) {
  var post_content = {
    date: ‘Nov 18 2019‘,
    title: ‘正是虾肥蟹壮时‘,
    post_img: ‘/images/post/crab.png‘,
    content: ‘菊黄蟹正肥,品尝秋之味。徐志摩把看初花的荻芦和到楼外楼吃蟹,并列为秋天来杭州不能错过到风雅之事;用林妹妹到话讲时“螯封嫩玉双双满‘,
    view_num: ‘112‘,
    collect_num: ‘96‘,
    author_img: ‘/images/avatar/1.png‘
  }
  this.setData(post_content);
},

这样设置好之后,页面就可以拿到数据了,setData的作用简单的来说就是拷贝到data里面去。

<view class=‘post-container‘>
  <view class=‘post-author-date‘>
    <image src=‘{{author_img}}‘></image>
    <text>{{date}}</text>
  </view>
  <text class=‘post-title‘>{{title}}</text>
  <image class=‘post-image‘ src=‘{{post_img}}‘></image>
  <text class=‘post-content‘>{{content}}</text>
  <view class=‘post-like‘>
    <image class=‘post-like-image‘ src=‘/images/icon/chat.png‘></image>
    <text class=‘post-like-font‘>{{collect_num}}</text>
    <image class=‘post-like-image‘ src=‘/images/icon/view.png‘></image>
    <text class=‘post-like-font‘>{{view_num}}</text>
  </view>
</view>

*:如果数据是绑定在属性里面的,不能把引号去掉,一定要把引号写上。如果去掉会直接报错。

原文地址:https://www.cnblogs.com/wzndkj/p/11143626.html

时间: 2024-08-04 04:15:07

小程序数据绑定和setData的相关文章

小程序中的setData的使用

小程序中的setData setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步). 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致. 单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据. 示例代码: index.wxml <view>{{name}}</view> <button bindtap="changeName">

微信小程序 数据绑定方式

与vue不同,在微信小程序中,js的数据和前端显示的数据是单数据流,也就是说,js里边的数据变了(通过setData),前端能立刻显示.但如果前端数据变了,js中的变量不能改变. 这个相比传统的前端已经算先进了. 传统的前端,即便是改变了js中的变量值,页面中的内容也不会变化,需要操作DOM来改变页面中的内容. 如果在小程序中,实现交互,可以通过绑定各种事件来进行. <block>标签并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性(主要用于配合wx:for.wx:

小程序数据绑定的拓展用法

<swiper vertical='true' indicator-dots='true' autoplay='true'> 我们看这个vertical='true',然后轮播图就变成的垂直方向轮播了.那么如果我把他改成false <swiper vertical='false' indicator-dots='true' autoplay='true'> 发现这个轮播图还是垂直方向轮播,为什么呢?true的反义词不就是false呢.这里的数据值需要的是个布尔值,'false'在j

微信小程序setData的使用,通过[...]进行动态key赋值

首先先介绍一下微信小程序Page.prototype.setData(Object data, Function callback)的讲解: setData函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的this.data的值(同步) 微信小程序官网文档只对字符串,数字,数组和对象类型的数据通过对setData进行了修改,却没有对动态数据进行讲解,在这里我就针对静态数据以及动态数据的修改进行讲解. 这里关键是动态数据修改,通过使用[...]: "..."进行动态数据赋值,如下

前端微信小程序源码开发大神牛

代码规范:变量与方法使用尽量使用驼峰式命名,避免使用$开头. 以$开头的方法或者属性为框架内建方法或者属性,可以被使用,使用前请参考API文档入口,页面,组件的命名后缀为.wpy.外链的文件可以是其它后缀. 请参考wpy文件说明使用ES6语法开发. 框架在ES6下开发,因此也需要使用ES6开发小程序,ES6中有大量的语法糖可以让我们的代码更加简洁高效.使用Promise 框架默认对小程序提供的API全都进行了 Promise 处理,甚至可以直接使用async/await等新特性进行开发. 项目创

微信小程序入门案例

本文通过具体的实例记录微信小程序的入门知识. 1.特点 不需要安装 依赖微信应用 更接近原生APP 丰富的框架及API可达到快速开发的目的 2.工具使用 在开发的过程中可以使用微信开发者工具,更加直观的进行调式及看到界面:下载地址 3.目录结构 pages:小程序页面,包括js(页面逻辑),wxml(页面结构),wxss(页面样式)和json(页面配置) app.js:小程序公共逻辑 app.json:小程序公共配置 app.wxss:小城市公共样式 4.公共配置 window:设置默认页面的窗

微信小程序-整理各种小程序源码和资料免费下载

微信小程序整理下载 [小程序源码]微信小程序-车源宝微信版 [小程序源码]小程序-微赞社区(论坛demo) [小程序源码]微信小程序-收支账单 [小程序工具]微信小程序-日历 [小程序源码]小程序-在线聊天功能 [小程序源码]微信小程序-大好商城(新增功能天气查询和2048游戏) [小程序源码]微信小程序-查询号码归属地 [小程序源码]微信小程序-备忘录2 [小程序源码]微信小程序-QQ音乐 [小程序源码]小程序-货币汇率 [小程序源码]微信小程序-大学图书馆 [小程序源码]小程序-积分商城 [

小程序解决方案 Westore - 组件、纯组件、插件开发

数据流转 先上一张图看清 Westore 怎么解决小程序数据难以管理和维护的问题: 非纯组件的话,可以直接省去 triggerEvent 的过程,直接修改 store.data 并且 update,形成缩减版单向数据流. Github: https://github.com/dntzhang/westore 组件 这里说的组件便是自定义组件,使用原生小程序的开发格式如下: Component({ properties: { }, data: { }, methods: { } }) 使用 Wes

浅谈小程序生命周期

马上要做小程序的开发啦,看了一波文档,总结一下. 小程序开发框架小程序的框架分为视图层和逻辑层.逻辑层由js 编写,视图层由WXML和WXSS编写.WXML 用来描述页面结构,相当于HTML;WXSS用来用来描述页面样式,相当于CSS. 小程序启动后,每个页面的数据放在data(这个data是在页面的js文件里)里面,初始化页面, 当用户触发页面的事件,逻辑层接受页面的事件反馈,通过setData发送新数据到视图层(异步),页面更新,同时改变对应的this.data的值(同步).小程序里面的se