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 相关文章推荐
动态加载js的几种方法
Oct 23 Javascript
两个JavaScript jsFiddle JSBin在线调试器
Mar 14 Javascript
Jquery阻止事件冒泡 event.stopPropagation
Dec 11 Javascript
js实现网页标题栏闪烁提示效果实例分析
Nov 20 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
May 10 Javascript
Input文本框随着输入内容多少自动延伸的实现
Feb 15 Javascript
js获取隐藏元素的宽高
Feb 24 Javascript
JavaScript基本语法_动力节点Java学院整理
Jun 26 Javascript
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
深入理解javascript prototype的相关知识
Sep 19 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
Jul 31 Javascript
ES6的循环与可迭代对象示例详解
Jan 31 Javascript
在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
PHP5 字符串处理函数大全
2010/03/23 PHP
php使用codebase生成随机数
2014/03/25 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
PHP小偷程序的设计与实现方法详解
2016/10/15 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
2017/01/19 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
javascript URL编码和解码使用说明
2010/04/12 Javascript
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
js实现旋转木马轮播图效果
2020/01/10 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
仅用500行Python代码实现一个英文解析器的教程
2015/04/02 Python
Python同时向控制台和文件输出日志logging的方法
2015/05/26 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
python绘制趋势图的示例
2020/09/17 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
农民工创业典型事迹
2014/01/25 职场文书
党支部对照检查材料
2014/08/25 职场文书
农民工预备党员思想汇报
2014/09/14 职场文书
工厂见习报告范文
2014/10/31 职场文书
公司股份转让协议书范本
2015/01/28 职场文书
信仰观后感
2015/06/03 职场文书
入党宣誓仪式主持词
2015/06/29 职场文书
Java SSM配置文件案例详解
2021/08/30 Java/Android
如何利用python实现Simhash算法
2022/06/28 Python