首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用react的方式来思考

这也很简单:在层次结构,需要关联其它组件才能显示的组件,就是组件。 如果你还是不得要领,那么看这个。...回顾我们案例所有交互元素,它们包括: 原始呈现的商品列表 搜索框内的内容 复选框是否被点选 过滤后的商品列表 让我们逐一思考,哪一个可以作为状态——对每个交互元素都得问三个问题: 它是通过父级组件的...在这个简单的demo, 原始呈现的商品列表是通过 props传进来的。所以可以直接判断它不是状态。 搜索框和 复选框的内容不可能通过计算得到,而且可以随时间而改变——它们是状态。...你可以参照以下思路,对每个交互元素的状态从三个方面考虑: 确定每个组件是不是依赖于状态? 找到共同的先代组件(所有需要状态组件的共同祖先)。 常见的组件所有者或另一个更高层次结构的组件。...接下来把这一策略用于本文案例: 商品面板( ProductTable)展示商品内容时,基于搜索框( SearchBar)和复选框的状态 App是所有组件(包括它自己)的共同所有者。

1.8K20

React编程思想

在这篇文章,我们将引导你进行使用React构建可搜索产品数据表的思考过程。 从设计稿开始 想象一下,我们已经有了一个JSON API和来自设计师的设计稿。如下图所示: ?...(和组件)画框,并给它们起名字。...这其实很容易:出现在一个组件的组件应该在层次结构显示为一个组件: FilterableProductTable SearchBar ProductTable ProductCategoryRow...考虑我们示例应用程序所有数据。我们有: 产品的原始列表 用户输入的搜索文本 复选框的值 过滤的产品列表 我们来看看每一个是哪一个state。...如果你无法找到一个有意义的组件,那么只好创建一个新的组件来保存state,并将其添加到公共所有者组件上方的层次结构的某个位置。

2.8K90
您找到你想要的搜索结果了吗?
是的
没有找到

Odoo 菜单定义和修改学习总结

元素也可以放在元素,形如 <?xml version="1.0"?...如果外部ID以-为前缀,则从菜单组移除该ID代表的组,注意,如果指定用户组不是在当前模块定义的,需要指定所在模块名称,形如estate.group_estate_property_root_menu...这种修改方式之所以特殊,是因为它不修改原有菜单的定义,而是通过重新定义菜单来修改,可以简单的类比为“继承”,具体做法如下: 定义一个新的菜单,将其id属性值设置为原有菜单所在模块名称及其...(如果需要的话),添加方式可以参考上文所述,需要注意的是,不管采用哪种方式,原有菜单的菜单依然存在,并显示为新定义菜单的菜单 隐藏原有菜单的菜单(如果需要的话) 定义一个,将其id...将其model设置为"ir.ui.menu" 添加元素 ,其中eval=False则表示隐藏,eval=True表示显示

1.3K10

React编程思想

在这篇文章,我们将引导你进行使用React构建可搜索产品数据表的思考过程。 从设计稿开始 想象一下,我们已经有了一个JSON API和来自设计师的设计稿。...(和组件)画框,并给它们起名字。...这其实很容易:出现在一个组件的组件应该在层次结构显示为一个组件: FilterableProductTable SearchBar ProductTable ProductCategoryRow...考虑我们示例应用程序所有数据。我们有: 产品的原始列表 用户输入的搜索文本 复选框的值 过滤的产品列表 我们来看看每一个是哪一个state。...如果你无法找到一个有意义的组件,那么只好创建一个新的组件来保存state,并将其添加到公共所有者组件上方的层次结构的某个位置。

3.2K50

odoo 开发入门教程系列-基本视图

在上一章已经看到,odoo能够为给定模型生成默认视图。实际上,默认视图对于业务应用程序来说是不可接受的。相反,我们至少应该以逻辑的方式组织各个字段。 视图是在带有操作和菜单的XML文件定义的。...在我们的estate模块,我们需要以逻辑方式组织字段: 在列表(树)视图中,我们希望显示的不仅仅是名称。 在表单视图中,应该对字段进行分组。 在搜索视图中,我们必须能够搜索的不仅仅是名称。...其最基础版本仅简单的列出要在表显示的所有字段(其中每个字段都是一列): 。...在自定义搜索视图中添加用户可能过滤的字段是非常常见的。 搜索视图还可以包含元素,这些元素充当预定义搜索的开关。

3.2K40

以 React 的方式思考

这篇文档,我们将通过运用React创建一个产品搜索列表,来引导你熟悉这个思考过程。 开始 假设我们已经有了一个JSON API和前端工程师设计的界面,如下面这样: ?...考虑我们这个例子需要的数据,我们有了: 产品原始列表 用户输入的搜索文本 复选框的值 过滤的产品列表 我们逐一分析,看看哪个是状态。...搜索文本和复选框的值会在应用操作过程中被改变,而且不能由其他属性或状态计算获得,看起来是状态。最后,过滤的产品列表不是状态,因为它可以经过计算原始数据列表、搜索文本和复选框的值获得。...这往往是新手理解起来最难的部分,按照下面的流程确定: 对于应用每一个状态: 确定依赖这个状态来渲染的每一个部件 寻找共同的父部件(在部件层级,位于所有需要这个状态的部件之上的父部件) 或者拥有这些状态的层级更高的部件...这真的使数据如何在整个应用程序如何流动一目了然。 结语 希望这可以让你了解如何用React来构建组件和应用。

3.5K30

聊聊mysql的树形结构存储及查询

2b1a', 4, '1/4/8'), (9, 'level3-2a1b', 5, '2/5/9'), (10, 'level3-2b1b', 6, '2/6/10'); - 查询 -- 查询某个节点的所有节点...-2a1a | 3 | 1/3/7 | | 8 | level3-2b1a | 4 | 1/4/8 | +----+-------------+-----------+-------+ >查找某个节点及其节点比较方面...,就是修改比较费劲,特别是节点移动,所有节点的path都得跟着修改 # MPTT(Modified Preorder Tree Traversal) !...| level3c-2b | 9 | 10 | | 7 | level3d-2b | 11 | 12 | +----+------------+-----+-----+ - 查询 -- 查询某个节点及其节点...• 存储path的好处是可以借助path来查找节点及其节点,缺点就是移动node需要级联所有节点的path,比较费劲 • MPTT的方式好处是通过lft进行范围(该节点的lft,rgt作为范围)查找就可以

1.8K20

odoo ORM API学习总结兼orm学习教程

设置store=True 将在数据库存储计算及字段并启动开启字段搜索。 也可以通过设置search参数开启在计算字段上的搜索。该参数值为一个返回搜索条件的方法名称 。...odoo.fields.Char类型 odoo.fields.active 切换记录的全局可见性,如果active设置为False,则记录在大多数搜索和列表不可见。...odoo.fields.parent_path 当_parent_store设置为True时,用于存储反映[_parent_name]树结构的值,并优化搜索domain的child_of和parent_of...访问这些辅助记录之一将预取同一模型所有辅助记录。...如果未提供或者为[]则表示所有 Model.fields_view_get([view_id | view_type='form'])[源代码] 获取所请求视图的详细组成,字段、模型、视图架构

13.2K10

聊聊mysql的树形结构存储及查询

level3-2b1a', 4, '1/4/8'), (9, 'level3-2a1b', 5, '2/5/9'), (10, 'level3-2b1b', 6, '2/6/10'); 查询-- 查询某个节点的所有节点...| 1/3/7 | | 8 | level3-2b1a | 4 | 1/4/8 | +----+-------------+-----------+-------+查找某个节点及其节点比较方面...,就是修改比较费劲,特别是节点移动,所有节点的path都得跟着修改 MPTT(Modified Preorder Tree Traversal) [sitepoint_numbering.gif] 不存储...level3c-2b | 9 | 10 | | 7 | level3d-2b | 11 | 12 | +----+------------+-----+-----+ 查询-- 查询某个节点及其节点...存储path的好处是可以借助path来查找节点及其节点,缺点就是移动node需要级联所有节点的path,比较费劲 MPTT的方式好处是通过lft进行范围(该节点的lft,rgt作为范围)查找就可以

3.9K30

odoo 给列表视图添加按钮实现数据文件导入

为在对应按钮视图模板定义的隐藏表单模版名称 替换EstateCustomerListView.buttons为对应按钮视图模板定义的按钮模版名称 根据需要替换 this....t-operation属性所在元素称为模板元素),可选值如下: append 将模板元素内容(body)追加到上下文节点的最后一个元素后面。...prepend 将模板元素内容插入到上下文节点的第一个元素之前。 before 将模板元素内容插入到上下文节点之前。 after 将模板元素内容插入到上下文节点之后。...inner 将模板元素内容替换上下文节点元素内容(所有节点) replace 将模板元素内容替换上下文节点 attributes 模版元素内容应该是任意数量的属性元素,每个元素都有一个名称属性和一些文本内容...提示不符合shema,因为未使用元素进行“包裹” 'static/src/xml/estate_customer_tree_view_buttons.xml', ]

3.4K30

一起学Elasticsearch系列 -Nested & Join

} } ] } } } } } 在上述示例,我们使用嵌套查询(nested query)来搜索包含特定评论的文档。...avg (默认):使用所有匹配的对象的平均相关性得分。 max:使用所有匹配的对象的最高相关性得分。 min:使用所有匹配的对象中最低的相关性得分。...一个元素可以有多个子元素但只有一个父元素。 可以向现有连接字段添加新关系。 也可以向现有元素添加元素,但前提是该元素已经是父元素。...您可以指定要匹配的父文档或文档的类型以及具体的查询条件。 parent_id:用于指定要查询的文档的父文档ID。通过指定parent_id参数,您可以快速检索与特定父文档相关联的所有文档。...inner_hits:内部命中参数允许您在查询结果获取与父文档或文档匹配的内部命中结果。您可以使用inner_hits来检索与查询条件匹配的文档或匹配的父文档及其关联的文档。

22810

探索SQL Server元数据(二)

/* 在所有触发器搜索字符串 */ SELECT convert(CHAR(32),coalesce(object_schema_name(object_ID)+'.','') +name)...我们在sys.SQL_modules搜索所有的定义可以找到一个特定的字符串,这种方式很慢很暴力,但是它是有效的! 在所有对象搜索字符串 我想知道除了触发器之外是否还有其他对象调用这个过程?...我们稍微修改查询以搜索sys.objects视图,而不是sys.triggers,以搜索所有具有与之关联的代码的对象。...我们还需要显示对象的类型 /* 在所有对象搜索字符串 */ SELECT convert(CHAR(32),coalesce(object_schema_name(object_ID)+'.',''...它们是几种类型的对象的父类,其他元数据索引是表的属性。我们正在慢慢地努力去发现所有关于表的信息。期待下期

1.5K20

ODOO优化层级关系查询效率的方法

Odoo10 Development Essentials》Chapter5(p106)中介绍了Odoo中分层关系的建立。 代码如下 在上面的代码。 使用字段来关联上层记录。...使用这个属性来开启分层搜索功能. 使用和字段来进行记录所属层级,当时看书的时候对这些代码不是很理解,只是知道这样做能够提高层级关系数据模型查询数据记录的效率。...(递归查询文件夹文件) Odoo为了提高层次结构(树状结构)查询效率,每一条层级数据记录添加跟字段. 假设A是B的上级对象。那么存在这样的逻辑关系。...Odoo 应用 我们用Odoo11的product模块作为演示 在文件.看到产品目录(ProductCategory类.15行起)的代码 在Odoo11的演示数据,产品的目录结构一共有6个 我们查询下数据库的数据...要找Saleable下的所有子目录即可使用 作为条件 结论: 在Odoo的实际使用,发现使用parent存储特性的模块主要涉及account, product, stock_location.

2.2K80

sql返回指定节点的树形结构数据

请叫我树形图 使用sql,返回部门1以及其子部门数据。 很明显就是一个树形递归嘛,用代码就比较好实现。 但是要用sql实现,就稍微麻烦点。...比如,我想知道部门1有哪些孩子,只需要parent_id等于部门1的id。想知道部门11有哪些孩子,只需要知道parent_id等于部门11的id。 所以最后我采用的是循环的方式。...返回指定节点以及其下子节点数据 到此,本文需求功能已实现。 知识点 1.数据库是mysql,所用的函数也是mysql的函数。 2....FIND_IN_SET(str,strlist) 假如字符串str 在由N 链组成的字符串列表strlist ,则返回值的范围在 1 到 N 之间。...任意一个参数为NULL,则返回值为 NULL。 结语 不积跬步无以至千里。觉得不错,记得点亮小星星。

2.5K31

MySQL多层级树形结构表的搜索查询优化

MySQL多层级树形结构表的搜索查询优化 业务中有思维导图的功能,涉及到大量的树形结构搜索、查询相关的功能,使用场景上查询量远高于增删改操作,记录一下当前的解决方案。...查询ID为“5”的节点的所有级、孙子级name包含“搜索词”的记录 更新表后的查询方式: -- 查询父级节点记录,获取到父级的path select * from nodes where id =...搜索词%'; 可以创建一个触发器,在插入、修改数据时,更新级的path。...查询ID为“5”的节点的所有父级 -- 获取当前节点 select * from nodes where id = 5; -- 使用当前节点的path查询所有父级 select * from nodes...find_in_set(id, '0,5'); -- 或者也可以使用in select * from nodes where id in (5); 因为有缓存,所以都尽量使用的简单查询,不使用缓存可以使用查询

74750

odoo 开发入门教程系列-QWeb简史

您可能已经熟悉现有的引擎,Jinja(Python)、ERB(Ruby) 或Twig(PHP)。Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用的主要模板引擎。...目标: 本节结束时创建一个房产的看板视图 在我们的地产应用程序,我们希望添加一个看板视图来显示我们的房产。看板视图是标准的Odoo视图(如表单和列表视图),但其结构更灵活。...(注意:以下未展示文件所有内容,其它内容保持不变) 我们添加了几个东西: t-if: 如果条件为真,渲染元素 record: 拥有所有请求字段作为其属性的对象...在上面的示例,字段name被添加到元素,但state在它之外。当我们需要字段的值但不想在视图中显示它时,可以将其添加到元素之外。

2K20
领券