本帖最后由 谷粒姐姐 于 2018-11-16 15:58 编辑
父组件向子组件传值评论列表案例目标:主要练习父子组件之间传值 使用 this.$refs 来获取元素和组件
[AppleScript] 纯文本查看 复制代码 <div id="app">
<div>
<input type="button" value="获取元素内容" @click="getElement" />
<!-- 使用 ref 获取元素 -->
<h1 ref="myh1">这是一个大大的H1</h1>
<hr>
<!-- 使用 ref 获取子组件 -->
<my-com ref="mycom"></my-com>
</div>
</div>
<script>
Vue.component('my-com', {
template: '<h5>这是一个子组件</h5>',
data() {
return {
name: '子组件'
}
}
});
// 创建 Vue 实例,得到 ViewModel
var vm = new Vue({
el: '#app',
data: {},
methods: {
getElement() {
// 通过 this.$refs 来获取元素
console.log(this.$refs.myh1.innerText);
// 通过 this.$refs 来获取组件
console.log(this.$refs.mycom.name);
}
}
});
</script>
什么是路由对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源; 对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特点:HTTP请求中不会包含hash相关的内容;所以,单页面程序中的页面跳转主要用hash实现; 在单页面应用程序中,这种通过hash改变来切换页面的方式,称作前端路由(区别于后端路由); - 在 vue 中使用 vue-router
导入 vue-router 组件类库: [AppleScript] 纯文本查看 复制代码 <!-- 1. 导入 vue-router 组件类库 -->
<script src="./lib/vue-router-2.7.0.js"></script> - 使用 router-link 组件来导航
[AppleScript] 纯文本查看 复制代码 <!-- 2. 使用 router-link 组件来导航 -->
<router-link to="/login">登录</router-link>
<router-link to="/register">注册</router-link> - 使用 router-view 组件来显示匹配到的组件
[AppleScript] 纯文本查看 复制代码 <!-- 3. 使用 router-view 组件来显示匹配到的组件 -->
<router-view></router-view> - 创建使用Vue.extend创建组件
[AppleScript] 纯文本查看 复制代码 // 4.1 使用 Vue.extend 来创建登录组件
var login = Vue.extend({
template: '<h1>登录组件</h1>'
});
// 4.2 使用 Vue.extend 来创建注册组件
var register = Vue.extend({
template: '<h1>注册组件</h1>'
}); - 创建一个路由 router 实例,通过 routers 属性来定义路由匹配规则
[AppleScript] 纯文本查看 复制代码 // 5. 创建一个路由 router 实例,通过 routers 属性来定义路由匹配规则
var router = new VueRouter({
routes: [
{ path: '/login', component: login },
{ path: '/register', component: register }
]
}); - 使用 router 属性来使用路由规则
[AppleScript] 纯文本查看 复制代码 // 6. 创建 Vue 实例,得到 ViewModel
var vm = new Vue({
el: '#app',
router: router // 使用 router 属性来使用路由规则
});
|
|