一、ref
:为子组件指定一个索引 ID,给元素或者组件注册引用信息。refs是一个对象,包含全部的ref组件。javascript
<div id="parent">
<user-profile ref="profile"></user-profile>(子组件)
</div>vue
var parent = new Vue({ el: '#parent' })
// 访问子组件
var child = parent.$refs.profilejava
ps:$表示refs为vue对象,而不是普通的js对象。post
二、props:父组件向子组件传值(数据),驼峰式改成横线式。this
三、scope 做用域spa
在父级中,具备特殊属性 scope
的 <template>
元素必须存在,表示它是做用域插槽的模板。scope
的值对应一个临时变量名,此变量接收从子组件中传递的 props 对象:code
<component>
元素,动态地绑定到它的
is
特性,咱们让多个组件可使用同一个挂载点,并动态切换:
var vm = new Vue({ el: '#example', data: { currentView: 'home' }, components: { home: { /* ... */ }, posts: { /* ... */ }, archive: { /* ... */ } } }) <component v-bind:is="currentView"> <!-- 组件在 vm.currentview 变化时改变! --> </component>
my-row是自定义组件component
<table> <tr is="my-row"></tr> </table>
<div> <h2>我是子组件的标题</h2> <slot> 只有在没有要分发的内容时才会显示。 </slot> </div>
父组件模版: <div> <h1>我是父组件的标题</h1> <my-component> <p>这是一些初始内容</p> <p>这是更多的初始内容</p> </my-component> </div>
渲染结果: <div> <h1>我是父组件的标题</h1> <div> <h2>我是子组件的标题</h2> <p>这是一些初始内容</p> <p>这是更多的初始内容</p> </div> </div>
v-on
侦听器。
foo
的值时,它须要显式地触发一个更新事件:
this.$emit('update:foo', newValue)