SAYW14军工笔记本电脑改2个千兆网口(其中一个为航插),带2G独显
¥价格电议,您可以向供应商询价得到该产品价格.00
价格电议,您可以向供应商询价得到该产品价格
但是,如果你有两个vm,全局注册可以在这两个vm都起作用。
我们可以用v-bind
来动态地将 prop 绑定到父组件的数据。每当父组件的数据变化时,该变化也会传导给子组件:父变子变,即父组件的parentMsg的值改变,被绑定到parentMsg的子组件的message属性也会发生相应的变化。
如果想把一个对象的所有属性传给子组件:
注意v-bind:my-message="parentMsg"
,这样就把一个动态,响应式的对象传给了子组件。结合前面学过的知识,我们进一步认识到v-bind
有把死的变活的功效。
我们再通过一个例子来加深对v-bind
的理解:
<!-- 这样传进去的是静态的字符串1,而不是数字1 -->
可是我需要传进去的是数字,要实现这个目的,可以这样写:
我们在写parent-com的时候,写到了
,本来child-com标签之间是不应该写内容的,因为内容是内部模板渲染出来的。但是如果你写了, 这些html内容将会当做参数传入child-com内部定义有slot的地方。
上面的例子,只要你把内容写在child-com标签之间,这些内容就会自动在child-com内部找到slot的位置并注入;
如果我有多个内容要分别注入不同的slot怎么办?
给slot起个名字不就可以了;
这个时候,子组件模板: 父组件传入的时候这样写:
<slot>
元素可以用一个特殊的特性name
来进一步配置如何分发内容。多个插槽可以有不同的名字。具名插槽将匹配内容片段中有对应slot
特性的元素。
仍然可以有一个匿名插槽,它是默认插槽,作为找不到匹配的内容片段的备用插槽。如果没有默认插槽,这些找不到匹配的内容片段将被抛弃。
有的时候为插槽提供默认的内容是很有用的。例如,一个<submit-button>
组件可能希望这个按钮的默认内容是“Submit”,但是同时允许用户覆写为“Save”、“Upload”或别的内容。
你可以在<slot>
标签内部指定默认的内容来做到这一点。
如果父组件为这个插槽提供了内容,则默认的内容会被替换掉。
当你想在插槽内使用数据时,例如:
该插槽可以访问跟这个模板的其它地方相同的实例属性 (也就是说“作用域”是相同的)。但这个插槽不能访问<navigation-link>
的作用域。例如尝试访问url
是不会工作的。牢记一条准则:
父组件模板的所有东西都会在父级作用域内编译;子组件模板的所有东西都会在子级作用域内编译。
作用域插槽是一种特殊类型的插槽,用作一个 (能被传递数据的) 可重用模板,来代替已经渲染好的元素。
在子组件中,只需将数据传递到插槽,就像你将 prop 传递给组件一样,即子组件把数据上传到父组件
在父级中,具有特殊特性slot-scope
的<template>
元素必须存在,表示它是作用域插槽的模板。slot-scope
的值将被用作一个临时变量名,此变量接收从子组件传递过来的 prop 对象:
即在父组件中使用子组件的数据
上面<template>之间的内容,会被完整插入子组件的slot标签中,替换掉slot,而且还能读取slot原来的prop对象传递过来的props.text的内容
作用域插槽更典型的用例是在列表组件中,允许使用者自定义如何渲染列表的每一项:
有的时候你希望提供的组件带有一个可从子组件获取数据的可复用的插槽。例如一个简单的<todo-list>
组件的模板可能包含了如下代码:
但是在我们应用的某些部分,我们希望每个独立的待办项渲染出和todo.text
不太一样的东西。这也是作用域插槽的用武之地。
为了让这个特性成为可能,你需要做的全部事情就是将待办项内容包裹在一个<slot>
元素上,然后将所有和其上下文相关的数据传递给这个插槽:在这个例子中,这个数据是todo
对象: <!-- 将 `todo` 对象作为一个插槽的 prop 传入,即在子组件里,把todo当做一个对象,往上传给父组件,即下面父组件接收到的slotProps。-->
组件的时候,我们可以选择为待办项定义一个不一样的
作为替代方案,并且可以通过
特性从子组件获取数据:
,那么这个表达式实际上就可以被
接受。也就是说你可以在支持的环境下 (
),在这些表达式中使用
这会使作用域插槽变得更干净一些。
利用v-bind:is属性绑定不同的组件:
当在这些组件之间切换的时候,你有时会想保持这些组件的状态,以避免反复重渲染导致的性能问题。例如我们来展开说一说这个多标签界面:
你会注意到,如果你选择了一篇文章,切换到 Archive 标签,然后再切换回 Posts,是不会继续展示你之前选择的文章的。这是因为你每次切换新标签的时候,Vue 都创建了一个新的currentTabComponent
实例。
重新创建动态组件的行为通常是非常有用的,但是在这个案例中,我们更希望那些标签的组件实例能够被在它们第一次被创建的时候缓存下来。为了解决这个问题,我们可以用一个<keep-alive>
元素将其动态组件包裹起来。
写在子组件的模板里,someChildProperty就可以和子组件里的数据绑定了 讲完这个概念,我们来看“内容分发”,也是这个原则;
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。