基础-组件-组件通信的几种情况 |
组件嵌套 => 父子组件 => 父组件传递数据给子组件使用 => 组件之间的传值 => 也叫组件之间的通信 组件之间的通信根据关系的可以分为: |
1. 父子组件通信 |
父组件到子组件 |
子组件到父组件 |
2.兄弟组件通信 |
//调用组件
//子组件Vue.component("child-a", { template: ` 我是子组件 {{count}}是自己的data中的数据count {{msg}}是来源于外部组件的数据
`, data() { return {count: 100 } }, props: ["msg"]})//父组件(根组件)new Vue({ el: '#app' data: { msgParent: "我是父组件"}})
基础-组件-父子组件传值-PROPS属性 |
父子组件的传值有多种方法,兄弟组件的通信也有自己的写法 |
1.子组件的props属性值是一个数组 |
2.数组中的值 绑定为子组件上的属性 用来接受父组件的传值 |
3.在子组件的template 中就可以使用 绑定的属性(msg ) 拿到父组件传递的值 |
基础-路由-JS 实现路由 |
通过上一个小节内容可以得出 采用 hash值改变 的特性来进行前端路由切换 |
路径: |
1. 实现导航结构('#/aaa') |
2.onhashchange 事件监听hash值的改变 |
3.获取hash值 根据值的不同 改变视图内容 |
基础-路由-VUE-ROUTER -文档 |
Vue-Router 是 Vue.js 官方的路由管理器 |
它和 Vue.js 的核心深度集成,让构建单页面应用变得简单 |
实现根据不同的请求地址 而 显示不同的内容 |
如果要使用 vue 开发项目,前端路由功能 必须使用vue-router 来实现 |
用法:1.CDN 2.本地文件 3.npm |
注意 :本地文件引入vue-router ,一定要先引入vue.js ,再引入vue-router |
基础-路由-VUE-ROUTER 的基本用法 |
1. 导入vue 和vue-router |
2. 设置HTML中的内容 |
3. 实例化路由对象,配置路由规则 |
4. 创建路由对应的组件 |
5. 把router实例挂载到vue 实例上 |
Document 主页 热点 关于我们
// 模板内容 let Home = { template: `主页
` } let Top = { template: `热点
` } let Abouts = { template: `关于我们
` } // 匹配规则 let router = new VueRouter({ routes: [{ path: '/home', component: Home }, { path: '/top', component: Top }, { path: '/abouts', component: Abouts }] }) let vm = new Vue({ el: '#app', data: {}, router })
基础-路由-VUE-ROUTER -动态路由 |
点击 列表页 跳转到 详情页 时,跳转的链接需要携带参数,会导致 path 不 |
当path不同却需要对应同一个组件时,需要用到动态路由这一概念 |
步骤:
1.标签上传入不同的值
小米电视 华为电视
2.路由规则中 尾部 添加动态参数 id
{ path: '/item/:id', component: Items }
3.在组件内部可以使用$route.params
获取当前路由对象的动态参数
let Items = { template: '我是商品详情页 {{ $route.params.id }}
', mounted: { console.log(this.$route.params.id); } }
基础-路由-VUE -ROUTER-TO 属性赋值 |
to有多种赋值方法 |
<!-- aaa --> <!-- bbb --> (注意:name值是字符串) <!-- ccc --> (注意:必须得加上/ 不然容易错乱) <!-- ddd --> (注意获取参数route 不要写成router) <!--体育 -->
基础-路由-VUE -ROUTER-重定向 |
场景: 当希望某个页面被强制中转时 可采用redirect 进行路由重定向设置 |
path: "/bj", redirect: "/sh", // 强制跳转上海 component: { template: `体育
`}
基础-路由-VUE -ROUTER-编程式导航 |
场景: 点击的时候路由实现跳转 |
methods: { goPage() { // 跳转到新闻页面 this.$router.push({path: "/news" });}}
基础-路由的激活样式 |
当前路由在导航中是拥有激活class样式的 |
审查导航元素,可以发现 激活样式 |
北京
设置激活class样式即可