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 相关文章推荐
jQuery客户端分页实例代码
Nov 18 Javascript
jquery插件开发之实现google+圈子选择功能
Mar 10 Javascript
js 设置缓存及获取设置的缓存
May 08 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
Jun 15 Javascript
IE浏览器下PNG相关功能
Jul 05 Javascript
AngularJS中$apply方法和$watch方法用法总结
Dec 13 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
Jan 11 Javascript
微信小程序实现之手势锁功能实例代码
Jul 19 Javascript
jQuery时间戳和日期相互转换操作示例
Dec 07 jQuery
js微信分享接口调用详解
Jul 23 Javascript
vue style width a href动态拼接问题的解决
Aug 07 Javascript
JavaScript模拟实现网易云轮播效果
Apr 04 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
php数组转成json格式的方法
2015/03/09 PHP
基于php实现随机合并数组并排序(原排序)
2015/11/26 PHP
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
5款JavaScript代码压缩工具推荐
2014/07/07 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
17道题让你彻底理解JS中的类型转换
2019/08/08 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
python字典排序实例详解
2015/05/20 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
如何使用python进行pdf文件分割
2019/11/11 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
名人演讲稿范文
2013/12/28 职场文书
部队学习十八大感言
2014/01/11 职场文书
优秀党支部事迹材料
2014/01/14 职场文书
邮政竞聘演讲稿
2014/09/03 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
秦兵马俑导游词
2015/02/02 职场文书
民事上诉状范文
2015/05/22 职场文书
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
SQL Server删除表中的重复数据
2022/05/25 SQL Server