vue项目的基础使用

cli-方式写组件
组件的构成
template
模板
script
业务逻辑
style
样式
组件的使用
1. 创建组件.vue
2. 导入并注册组件
3. 使用组件
路由与视图
页面.vue
配置 router.js
path:"/cart"
路由对应的地址
name:“cart”
路由的名称
component:Cart
路由地址对应的组件
路由指令
router-link
路由链接(切换路由)
to=”路由地址“
切换的地址
router-view
路由视图显示 url对应的组件的
路由的参数
1. router.js配置
path:"/product/:id"
2. 组件内部获取到参数
{{$route.params.id}}
路由编程跳转
返回
$router.go(-1)
$router.back()
跳转
$router.push("/")
$router.push("/cart")
$router.replace("/cart")
跳转页面不留历史记录
子路由
目标
article
comment 评论
detail参数
{
path:"/article",
component:“Article”,
children:[
{path:“comment”, component:Comment},
{path:“detail”, component:Detail},
]
}
Article.vue
评论>

重定向
{path:"",redirect:“comment”}
激活class
router-link-exact-active
path 和当前的url地址栏路径 完全精确匹配
router-link-active
path 和url地址栏部分匹配
路由的别名
alias:["/home","/index"]
路由的404匹配
{path:"*"}
配置放在最后面

vue中使用ajax
1. 安装
yarn add axios
2. 挂载到vue
import axios from ‘axios’
Vue.prototype. h t t p = a x i o s 3. 使 用 t h i s . http = axios 3. 使用 this. http=axios3.使this.http.get(url)
.then(res=>{
})

上线 打包
yarn build
多一个 dist
vue组件的生命周期
定义:一个组件从创建到销毁会经历多个步骤,把这些步骤称为组件的生命周期
组件的每个生命周期都会,触发固定的回调函数,我们把回调函数称为 生命周期钩子函数
生命周期
创建前后
created()
创建完毕
做一些初始化
beforeCreate
创建完毕前
渲染前后
mounted
第一次渲染完毕
html DOM已经渲染 操作页面中的元素
beforeMount
渲染完毕前
更新前后
updated
更新完毕

		beforeUpdate

更新前
销毁前后
destroyed
销毁完毕
beforeDestroy
销毁前
子主题 4
登录注册路由权限判断
导航守卫
组件内部守卫
定义:当进入页面或离开页面进行判断
进入页面
重定向别的页面
额外的事情
beforeRouterEnter
路由进入前
to
要进入的路由
from
从哪个路由来得
next
将要去哪儿
next 必须要被调用
beforeRouterLeave
路由离开前
路由配置 全局守卫
路由独享守卫
beforeEnter

页面缓存
缓存组件
特别组件需要缓存 meta:{keepalive:true}
组件间通信
1. 父传子
a, 父组件通过属性方式传入

data(){return {galleryPic:[…]}
b , 子组件通过props 方式接收
props:[“gallery”]
2. 子获取父亲的data数据
this. p a r e n t . s h o w T a b 3. b u s 方 式 传 递 ( 不 论 , 父 子 还 兄 弟 , 还 是 子 父 ) 1. 定 义 b u s . j s i m p o r t V u e f r o m ’ v u e ‘ e x p o r t d e f a u l t n e w V u e ( ) ; 2. 如 果 要 获 取 数 据 i m p o r t b u s f r o m " b u s . j s " b u s . parent.showTab 3. bus方式传递 (不论,父子还兄弟,还是子父) 1. 定义 bus.js import Vue from ’vue‘ export default new Vue(); 2. 如果要获取数据 import bus from "bus.js" bus. parent.showTab3.bus1.bus.jsimportVuefromvueexportdefaultnewVue();2.importbusfrom"bus.js"bus.on(事件名,data=>{ // data 就是数据名称})

	2. 如果要发送数据

import bus from “bus.js”
bus.$emit(“事件名”,数据)

4.子传父
	<swiper @swevent="处理函数($event)" / >

<swiper @numchange = “changeHd( e v e n t ) ” / > m e t h o d s : c h a n g e H d ( e ) / / e 就 是 s w i p e r 传 递 过 来 的 数 据 15 t h i s . event)”/> methods:{ changeHd(e){ // e 就是swiper 传递过来的数据 15 } } this. event)/>methods:changeHd(e)//eswiper15this.emit(“numchaneg”,15)
5. 路由传递
params
配置
{path:"/product/:id"}
获取
{$route.params.id}
query
push("/login?redirect=/about")
获取
r o u t e . q u e r y . r e d i r e c t 6. v u e x ( 最 高 级 ) 组 件 的 缓 存 1. 定 义 元 信 息 . r o u t e r / i n d e x . j s n a m e : " c a r t " , m e t a : k e e p : t r u e 2. k e e p − a l i v e 进 行 缓 存 : i n c l u d e = " ′ c a r t ′ " < k e e p − a l i v e > < r o u t e r − v i e w v − i f = " route.query.redirect 6. vuex(最高级) 组件的缓存 1. 定义元信息 .router/index.js {name:"cart", meta:{keep:true}} 2. keep-alive进行缓存 :include="'cart'" <keep-alive> <router-view v-if=" route.query.redirect6.vuex()1..router/index.jsname:"cart",meta:keep:true2.keepalive:include="cart"<keepalive><routerviewvif="route.meta.keep"/>


jsonp数据
axios 不支持jsonp
jsonp的原理?
为什么jsonp ?ajax 请求有同源测试
经常需要跨域名请求数据
后端允许 Access-Control-Allow-Origin: *
后端允许 函数名(数据)
jp({name:“mumu”,age:18})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值