VUE处理 组件赋值 watch 监听不到赋值问题
开发中,遇到了一个BUG,做的页面类似于 导航切换效果。两个组件传值。
上方导航组件 (主动)
左侧导航组件 (被动)
点击上方导航,左侧导航实现变换对应的栏目。

实现过程中,遇到了点问题。左侧导航组件监听不到 值变换。 研究了几天。最终问题解决了。
解决方案:
props: {
currIndex: {
type: String,
default: "3",
}
},
watch: {
currIndex: {
handler(newValue) {
//用户列表项排除掉
if (newValue === '2-4' || newValue === 'info' || newValue === 'editPassword' || newValue === 'loginOut') {
return;
}
//动态更改菜单项
newValue === "3" ? this.$data.leftMenu = this.$data.contract :
newValue === "2" ? this.$data.leftMenu = this.$data.system :
this.$data.leftMenu = [];
},
deep: true,
immediate: true
}
}
vm.$watch( expOrFn, callback, [options] )
参数:
{string | Function} expOrFn{Function | Object} callback{Object} [options]{boolean} deep{boolean} immediate
返回值:
{Function} unwatch用法:
观察 Vue 实例变化的一个表达式或计算属性函数。回调函数得到的参数为新值和旧值。表达式只接受监督的键路径。对于更复杂的表达式,用一个函数取代。
注意:在变异 (不是替换) 对象或数组时,旧值将与新值相同,因为它们的引用指向同一个对象/数组。Vue 不会保留变异之前值的副本。
示例:
// 键路径
vm.$watch('a.b.c', function (newVal, oldVal) {
// 做点什么
}) // 函数
vm.$watch(
function () {
return this.a + this.b
},
function (newVal, oldVal) {
// 做点什么
}
)vm.$watch返回一个取消观察函数,用来停止触发回调:var unwatch = vm.$watch('a', cb)
// 之后取消观察
unwatch()选项:deep
为了发现对象内部值的变化,可以在选项参数中指定
deep: true。注意监听数组的变动不需要这么做。vm.$watch('someObject', callback, {
deep: true
})
vm.someObject.nestedValue = 123
// callback is fired选项:immediate
在选项参数中指定
immediate: true将立即以表达式的当前值触发回调:vm.$watch('a', callback, {
immediate: true
})
// 立即以 `a` 的当前值触发回调
VUE处理 组件赋值 watch 监听不到赋值问题的更多相关文章
- vue 定义全局函数,监听android返回键事件
vue 定义全局函数,监听android返回键事件 方法一:main.js 注入(1)在main.js中写入函数Vue.prototype.changeData = function (){ aler ...
- vue使用element-ui的el-input监听不了回车事件解决
vue使用element-ui的el-input监听不了回车事件,原因应该是element-ui自身封装了一层input标签之后,把原来的事件隐藏了,所以如下代码运行是无响应的: <el-inp ...
- vue使用element-ui的el-input监听不了键盘事件解决
vue使用element-ui的el-input监听不了键盘事件,原因应该是element-ui自身封装了一层div在input标签外面,把原来的事件隐藏了,所以如下代码运行是无响应的: <el ...
- vue 如何在循环中 "监听" 的绑定v-model数据
vue 如何在循环中 "监听" 的绑定v-model数据 阅读目录 vue 如何在循环中 "监听" 的绑定v-model数据 1. 普通属性的值进行监听 2. ...
- vue解惑之v-on(事件监听指令)
一.v-on指令 vue中用v-on指令来监听DOM事件,并触发相应的代码.比如v-on:click,表示监听了点击事件. 二.事件修饰符 在事件处理函数中调用 event.preventDefaul ...
- Vue框架(二)——Vue指令(v-once指令、v-cloak指令、条件指令、v-pre指令、循环指令)、todolist案例、Vue实例(计算、监听)、组件、组件数据交互
Vue指令 1.v-once指令 单独使用,限制的标签内容一旦赋值,便不可被动更改(如果是输入框,可以主动修改) <!DOCTYPE html> <html lang=" ...
- 浅谈VUE,使用watch方法监听父组件传到子组件的数据。
props:['updateData'], data(){ return{ form: { _name:'', }, } }, 第一步接收数据: props:['updateData'] 第二步动 ...
- Vue获取dom和数据监听
Vue获取dom对象 在js和jq中我们都能获取dom对象例如 // 获取id=1的div标签 <div id=d1>dom对象</div> // js语法 let ele = ...
- React和Vue中,是如何监听变量变化的
React 中事件监听 本地调试React代码的方法 先将React代码下载到本地,进入项目文件夹后yarn build 利用create-react-app创建一个自己的项目 把react源码和自己 ...
随机推荐
- webstrom
1.webstrom如何在左边显示多个工程 File-> Settings -> Directories -> Add Content Root,选择你要加入的Project 点击O ...
- highchart 十字准星 crosshairs
crosshairs: true, crosshairs: [true, true], // 同时启用竖直及水平准星线 crosshairs: [{ // 设置准星线样式 width: 2, colo ...
- hadoop HA学习
一 HDFS HA架构图 二 HDFS HA组件 Active NameNode和Standby NameNode 在NameNode的HA方案中有两个不同状态的NameNode,分别为活跃态(Act ...
- ES6/ES7/ES8常用特性和新特性
转自:https://www.jianshu.com/p/9da4aa1c9970
- [转] jquery作者John Resig编写的微模板引擎:JavaScript Micro-Templating
I've had a little utility that I've been kicking around for some time now that I've found to be quit ...
- day 02 python 基础
1.day1作业讲解 题目答案见day1 2.格式化输出 %占位符,s:字符串,d:数字 %%只是单纯的显示%(显示的%是后面的) #格式化输出 # % s d # name = input('请输入 ...
- 《程序设计入门——C语言》翁恺老师 第五周编程练习记录
1 素数和(5分) 题目内容: 我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推. 现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个 ...
- svn 删除svn项目命令
svn delete svn://127.0.0.1:3690/project -m delete
- UML介绍
UML是什么 Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所 ...
- 【Alpha】测试报告
测试中发现的Bug 测试伴随着前后端的首次连接之后与开发一起进行,在本阶段,我们遇到了各种各样的bug,有些体现在功能上,有些虽然不会影响到具体的功能实现,但是会影响到用户体验.由于时间问题,我们对其 ...