Backbone中父子view之间的值传递
backbone中,使用最多的莫过于在view中进行操作,如模板的渲染以及事件函数的定义。为了提高代码的可维护性,一般地我们会写多个视图即view,将界面按照功能的不同进行模块化划分,模块与view一一对应。
首先,我们会定义一个父view,在view中控制不同子view的渲染,子view之间尽量不产生联系。这样,代码之间的耦合度会降低很多,模块的功能明确化,同时降低了开发的难度。笔者最近在项目中遇到父子view传值问题,学习到了一个知识点,比较简单易懂。主要想分享两个内容:1.父子view是如何传值的。2.父子view传值要注意什么。以我实际的项目为例进行说明。
一、如何传值
项目中利用require.js按需加载js文件,大大地节约了资源。首先在global.js中申明子view的路径,方便在父view中进行引用。熟悉require.js的读者都知道,require.js是通过define进行函数的定义以及相关依赖模块的引入,这里不必细说,假设参数定义为childrenView。在父view中new一个childrenView对象,这样我们通过自定义事件进行操作就行。此时new的对象包含view的render方法等。如果在new childrenView(参数1)时,参数1可以为空,此时父子view之间没有值传递;当参数2存在时,父子view存在值传递,参数1是父view传递给子view的。在子view的initial(参数2)中可以接收参数1,即参数1和参数2是对等的。
此外,因为是在父view中new的子view,可以在父view可以对子view进行操作。
二、细节问题
通过一我们可以很方便在子view中接收父view的数据,但是这里有个细节问题。我曾在这里困惑好久。参数最好不要传父view,即父view的this或者view默认的事件函数等。因为这样做,参数会将子view默认的事件函数给覆盖,导致子view相同的事件函数失效。简单来讲,如果父子view都存在的,比如render,events或者其他定义相同的值或者是自定义函数不能作为参数传递。
Backbone中父子view之间的值传递的更多相关文章
- Vue父子之间的值传递
将通过两个input框实现父子之间的值传递作为演示,效果图 先注册父子各一个组件,代码如下 <div id="app"> <parent></pare ...
- Angular06 组件、模块、父子组件之间的数据传递
1 创建组件 进入到angular项目的根目录,执行如下命令 ng g component test-component 注意:执行完上述命令后在angular项目的src/app文件夹下就会多出一个 ...
- ThreadLocal父子线程之间的数据传递问题
一.问题的提出 在系统开发过程中常使用ThreadLocal进行传递日志的RequestId,由此来获取整条请求链路.然而当线程中开启了其他的线程,此时ThreadLocal里面的数据将会出现无法获取 ...
- WP8:Unity3D之间的值传递
在前面的讨论中,我们介绍了如何在Unity3D for WP8中使用高于.Net 3.5的第三方库,传送门:http://www.cnblogs.com/zhxilin/p/3311240.html ...
- vue-cli中父子组件间的变量传递
vue-cli中父子组件间的变量传递 在vue中每一个组件的作用域都是独立的,如果我们想实现父子组件间变量的传递就要另寻他法,而不能直接调用其中的变量. 父级组件向子级组件传递变量 要实现这种效果我们 ...
- 通过$broadcast或$emit在子级和父级controller之间进行值传递
通过$broadcast或$emit在controller之间进行值传递,不过这些controller必须是子级或者父级关系, $emit只能向父级parent controller传递事件event ...
- vue.js 同级组件之间的值传递方法(uni-app通用)
vue.js 兄弟组件之间的值传递方法 https://blog.csdn.net/jingtian678/article/details/81634149
- ASP.NET MVC3中Controller与View之间的数据传递总结
一. Controller向View传递数据 1. 使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...
- ASP.NET MVC3中Controller与View之间的数据传递
在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一. Controller向Vie ...
随机推荐
- React入门---基础知识-大纲-1
-----------------在慕课网学习react入门笔记-------------- ---------博主边学边记录,手把手进行学习及记录---------- --------------- ...
- Android stdio打开特定网页
博主懒不想打字,直接上程序 package com.example.testopen; import android.app.Activity; import android.os.Bundle; ...
- 018 关联映射文件中<class>标签中的lazy(懒加载)属性
Lazy(懒加载): 只有在正真使用该对象时,才会创建这个对象 Hibernate中的lazy(懒加载): 只有我们在正真使用时,它才会发出SQL语句,给我们去查询,如果不使用对象则不会发SQL语句进 ...
- ES6核心内容精讲--快速实践ES6(二)
Iterator和for...of 是什么: Iterator(遍历器)是专门用来控制如何遍历的对象,具有特殊的接口. 怎么用: Iterator(遍历器)对象带有next方法,每一次调用next方法 ...
- iOS 原生模块 给 Javascript(ReactNative) 发送事件 (通知监听)
官方中文文档是这样描述的: 就给我们这几句话 就打发我们了. 按照上面的写法,根本不知道 - (void)calendarEventReminderReceived:(NSNotificatio ...
- pythion 第二弹
################################第二节################################################python中数据类型的常见的方法 ...
- 一天搞定CSS:字体font--04
1.字体体系 2.字体各属性取值 说明: 每一个属性后面的分支是属性值,以及对属性值的说明. 比如font-weight- - - -有两个取值:bold,normal 3.演示代码 <!DOC ...
- 导入java项目时出现红色叹号问题的解决
问题:导入java项目时出现红色叹号(如下图所示) 原因:引入项目的某些jar包跟自己电脑上的位置不一样: 解决方案:步骤如下 (1)右键红色叹号所在项目————>build path————& ...
- 【Python中if __name__ == '__main__': 的解析】
在很多Python代码中,在代码的最下方会看到 if __name__ == '__main__':,这段代码到底有什么用呢? 在理解这个语句的作用前,需要知道的是,一般的Python文件后缀为.p ...
- springMVC实现REST开发详解(补充Json解析问题以及静态文件404错误解决办法)
一.什么是REST? 符合REST约束风格和原则的应用程序或者设计就是REST 例如: /blog/1 HTTP GET =>查询id=1的blog /blog/1 HTTP DE ...