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 相关文章推荐
关于文本限制字数的js代码
Apr 02 Javascript
Javascript连接多个数组不用concat来解决
Mar 24 Javascript
Bootstrap每天必学之表单
Nov 23 Javascript
基于jQuery实现放大镜特效
Oct 19 Javascript
JavaScript实现向select下拉框中添加和删除元素的方法
Mar 07 Javascript
Vue.use源码分析
Apr 22 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
Jun 15 Javascript
vue.js实现备忘录功能的方法
Jul 10 Javascript
Vue.js实现价格计算器功能
Mar 30 Javascript
jQuery实现表单动态添加与删除数据操作示例
Jul 03 jQuery
微信小程序监听用户登录事件的实现方法
Nov 11 Javascript
vue ajax 拦截原理与实现方法示例
Nov 29 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
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
关于跨站脚本攻击问题
2011/12/22 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
Bootstrap每天必学之响应式导航、轮播图
2016/04/25 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
Angular4学习笔记之新建项目的方法
2017/07/18 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
2017/12/28 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
ES6学习笔记之let与const用法实例分析
2020/01/22 Javascript
bpython 功能强大的Python shell
2016/02/16 Python
python 类详解及简单实例
2017/03/24 Python
[原创]pip和pygal的安装实例教程
2017/12/07 Python
numpy中索引和切片详解
2017/12/15 Python
python引用(import)某个模块提示没找到对应模块的解决方法
2019/01/19 Python
使用Template格式化Python字符串的方法
2019/01/22 Python
python 图片去噪的方法示例
2019/07/09 Python
Python 获取windows桌面路径的5种方法小结
2019/07/15 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
TensorFlow2.0矩阵与向量的加减乘实例
2020/02/07 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
Python通过字典映射函数实现switch
2020/11/06 Python
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
信息简报范文
2015/07/21 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python