Nuxt.js 数据双向绑定的实现


Posted in Javascript onFebruary 17, 2019

假定我们有一个需求,一开始通过mounted()将一个字符串渲染在页面上,但是我们经过操作后修改了数据并且需要将得到的结果重新异步渲染到页面中去,而不是跳转刷新页面来重新渲染

首先模板中data()中定义数据,并且要将定义的数据显示出来

<template>
  <div>
    <span @click="click">{{ text }}</span>
  </div>
</template>

<script>
  export default {
   data(){
    return {
     text: '',
     newText: '1'
    }
   },
   async mounted(){
     let {status,data:{text}} = await self.$axios.post('/getText');
     this.text = text;
   }
  }
</script>

然后我们通过methods里的函数来获取后台的数据

methods:{
  async click(){
    let {status,data:{text}} = await self.$axios.post('/updateText',{
      text,
      newText
    })
   
    this.text = text;
  }
  
}

服务端的接口如下

router.get('/getText', async (ctx) => {
  let text= await Text.find();
  ctx.body = {
    text
  }
}

router.post('/updateText', async (ctx) => {
 const {text,newText} = ctx.request.body;
 let oldVal = text;
 let newVal = newText;

 let ncomment = await Comment.updateOne(oldVal,newVal);

 let text= await Text.find();

 ctx.body={
  text
 }
})

这里有个重点!

获取页面传过来的参数时必须使用结构赋值的方法获取,不然获取到的为一个Object,查询将会出错!

双向绑定在这里的体现是:一开始通过mounted()将数据渲染到模板中,然后调用函数通过服务端的updateText接口改变数据,在updateText接口中更新完数据后,执行一遍查询,将查询结果返回到触发的函数中。并在该函数中修改data()中text的值达到数据双向绑定的效果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript动态改变div属性的实现方法
Jul 22 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
May 10 Javascript
angular route中使用resolve在uglify压缩后问题解决
Sep 21 Javascript
bootstrap weebox 支持ajax的模态弹出框
Feb 23 Javascript
vue小白入门教程
Apr 02 Javascript
JavaScript简单实现的仿微博留言功能示例
Jan 17 Javascript
Vue项目路由刷新的实现代码
Apr 17 Javascript
微信小程序如何使用canvas二维码保存至手机相册
Jul 15 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
Nov 20 Javascript
js实现双色球效果
Aug 02 Javascript
vue实现路由懒加载的3种方法示例
Sep 01 Javascript
JavaScript实现alert弹框效果
Nov 19 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
Feb 17 #Javascript
JavaScript遍历DOM元素的常见方式示例
Feb 16 #Javascript
原生JS实现逼真的图片3D旋转效果详解
Feb 16 #Javascript
JS实现简单的抽奖转盘效果示例
Feb 16 #Javascript
mocha的时序规则讲解
Feb 16 #Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 #jQuery
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 #Javascript
You might like
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
2011/08/12 PHP
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
JS生成随机字符串的多种方法
2014/06/10 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
JS提交form表单实例分析
2015/12/10 Javascript
JavaScript操作 url 中 search 部分方法函数
2016/06/15 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
[01:45]典藏宝瓶2+祈求者身心——这就是DOTA2TI9总奖金突破3000万美元的秘密
2019/07/21 DOTA
python浪漫表白源码
2019/04/05 Python
itchat-python搭建微信机器人(附示例)
2019/06/11 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
wxPython实现绘图小例子
2019/11/19 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
Python执行时间的几种计算方法
2020/07/31 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
2020/08/07 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
巴西24小时在线药房:Droga Raia
2020/05/12 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
为什么使用接口?
2014/08/13 面试题
自立自强的名人事例
2014/02/10 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
服装设计专业自荐信
2014/06/17 职场文书
小学生作文评语集锦
2014/12/25 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书