vue实现从外部修改组件内部的变量的值


Posted in Javascript onJuly 30, 2020

1、首先是如何给你定义的变量拿到数据:

这里我自己用的是vuex:

首先在你项目的src文件夹下创建这么一个目录:

vue实现从外部修改组件内部的变量的值

之后就要在index.js中将homedatas.js(拿数据的js)共享出去,使页面能拿到数据,

以下是index.js的代码:

vue实现从外部修改组件内部的变量的值

随后就是在homedatas中获取数据了,以下是homedatas.js代码:

vue实现从外部修改组件内部的变量的值

以上就是获取数据的步骤,之后就是在页面中拿到这个获取到的数据:

首当其冲不可少的就是引用,引用vuex和引用组件:

vue实现从外部修改组件内部的变量的值

之后在页面的jascript中的export default中定义组件,获取数据:

vue实现从外部修改组件内部的变量的值

用这个方式在页面中引用组件,然后再自定义标签中将数据传递给组件:

vue实现从外部修改组件内部的变量的值

2、子组件中获取父组件传递过来的数据:

props中定义属性,这是之前在页面自定义标签中设置的三个属性,分别控制组件中的不同部分,定义每个属性的类型、默认值以及测试函数,注意,测试函数一定要return一个值,不然页面会报错,测试函数的参数就是传递过来的值:

vue实现从外部修改组件内部的变量的值

scrolldatas是一个数组,之后便是循环遍历这个数组中的元素,数组中的值就能展示在页面了,页面元素会随着数组元素的改变而改变:

vue实现从外部修改组件内部的变量的值

之后就是其他两个变量怎么在组建中引用了:

首先我要在测试函数中判断一下,这个传进来的值符合不符合要求,如果不符合,那就不执行测试函数,就是默认值,如果符合要求,执行函数,并在函数中改变默认值,赋值给相应自定义变量:

vue实现从外部修改组件内部的变量的值

之后就是调用函数,调用函数中传入参数,这个参数现在的值不是最开始var的初始值,而是后来测试函数中因为符合测试函数的条件后来赋给的值(因为window.onload直到页面加载才会执行):

vue实现从外部修改组件内部的变量的值

之后就要在需要用到这个变量的函数中传一个参数(speed,这个speed的值就是上面changespeed的值):

vue实现从外部修改组件内部的变量的值

所以经过一会说那个的操作,只要在获取数据的地方修改值,页面效果就会随之改变,不需要再组件中修改任何东西:

vue实现从外部修改组件内部的变量的值

补充知识:vue 中如何修改传给component中的属性的值并赋值到template中

记录下来加强记忆

在外面引用option-item-template模板并传值进去,然后在component中对值进行修改然后在赋值到template

下面是外面引用的写法

<option-item-template v-bind:item="item" v-for="optionItem in item.option" v-bind:optionitems="optionItem" v-bind:answer="item.data.answer" v-bind:hassub="changeData.hasSub"></option-item-template>

模板部分的代码

Vue.component('option-item-template', {
  props: ['item', 'optionitems', 'answer','hassub'],
  data: function () {
    return {
      classname: {
        "choose-content": true,
        "stan-answer": false
      }
    }
  },
  watch: {
    hassub: function (newValue, oldValue) {//当hassub属性的值发生改变时会执行下面的代码
      this.changeStanAnswer(newValue, this.answer);
    }
  },
  mounted: function () {//模块编译/挂载之后执行
    this.changeStanAnswer(this.hassub,this.answer);
  },
  methods: {
    changeStanAnswer: function (sub, answer) {
      if (sub && (answer.indexOf(this.optionitems.chooseName) != -1)) {
        this.classname = {
          "choose-content": true,
          "stan-answer": true
        };
      } else {
        this.classname = {
          "choose-content": true,
          "stan-answer": false
        };
      }
    }
  },
  template: '<li class="mui-table-view-cell" v-if="optionitems.selectName || optionitems.selectImage">'
    + '<label :class="classname">'
    + '<input v-if= "item.data.itemType==2" type="checkbox" :name="item.data.tiKuId" v-bind:data-number="item.data.shiJuanNumber" data-type="checkbox" :value="optionitems.chooseName" />'
    + '<input v-else type="radio" :name="item.data.tiKuId" v-bind:data-number="item.data.shiJuanNumber" :value="optionitems.chooseName" data-type="radio" />'
    + '<span class= "choose-btn" >{{optionitems.chooseName}}</span>'
    + '<span class="choose-text">'
    + '{{optionitems.selectName}}'
    + '![在这里插入图片描述]()'
    + '</span>'
    + '</label></li>'
});

由上面的代码所示,根据传进来的值hassub,和optionitems.chooseName的值来拼成最后需要加载的样式及class的值。
hassub的值是会变化的,同时需要根据改变的值加载不同的样式就需要在watch中监听hassub的值,当它的值发生改变时同时也改变class的值。

以上这篇vue实现从外部修改组件内部的变量的值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
HTML上传控件取消选择
Mar 06 Javascript
JavaScript地图拖动功能SpryMap的简单实现
Jul 17 Javascript
Javascript基础教程之switch语句
Jan 18 Javascript
原生JS实现N级菜单的代码
May 21 Javascript
通过构造函数实例化对象的方法
Jun 28 Javascript
浅谈箭头函数写法在ReactJs中的使用
Aug 22 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
Apr 20 Javascript
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
koa2+vue实现登陆及登录状态判断
Aug 15 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 jQuery
vue-cli3.x配置全局的scss的时候报错问题及解决
Apr 30 Vue.js
在vue中实现嵌套页面(iframe)
Jul 30 #Javascript
Vue文本模糊匹配功能如何实现
Jul 30 #Javascript
VUE 单页面使用 echart 窗口变化时的用法
Jul 30 #Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
Jul 30 #Javascript
Vue Render函数原理及代码实例解析
Jul 30 #Javascript
vue - props 声明数组和对象操作
Jul 30 #Javascript
vue项目,代码提交至码云,iconfont的用法说明
Jul 30 #Javascript
You might like
基于PHP与XML的PDF文档生成技术
2006/10/09 PHP
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
php数组对百万数据进行排除重复数据的实现代码
2010/06/08 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
javascript 24小时弹出一次的代码(利用cookies)
2009/09/03 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
2011/11/02 Javascript
js数组Array sort方法使用深入分析
2013/02/21 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
vue 插值 v-once,v-text, v-html详解
2018/01/19 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
2018/09/03 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
[56:35]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第一局
2016/03/06 DOTA
python持久性管理pickle模块详细介绍
2015/02/18 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
2020/06/02 Python
python 元组的使用方法
2020/06/09 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
光电信息专业应届生求职信
2013/10/07 职场文书
2014年检验科工作总结
2014/11/22 职场文书
简历中的自我评价应该这样写!
2019/07/12 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL