目录
一、elementui使用
网址:https://element.eleme.cn/#/zh-CN/component/installation
下载插件
cnpm isntall -S element-ui@2.9
vue界的ui库
Element Plus 经典中的经典,全面支持 Vue 3
Vant 3 - 有赞团队开源移动 UI 组件库,全面支持 Vue 3:https://vant-contrib.gitee.io/vant/#/zh-CN
TDesign - 鹅厂优质 UI 组件,配套工具完满,设计工整,文档清晰
Ant Design Vue - 阿里前端 UI 库,面向企业级中后台
iView:
二、vuex的使用
1.概念
在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。
2.何时使用?
多个组件需要共享数据时
3、使用步骤:
第一步:
state: {
num:10
},
第二步:
methods:{
handleAdd(){
// 1.直接操作
// console.log('111')
// this.$store.state.num+=1
// 2.正统操作,通过dispatch触发actions
this.$store.dispatch('add',2) // add必须是actions里面的函数
}
}
第三步:
actions: {
// 至少要有一个参数,context上下文对象,触发mutations中的函数执行,或者直接改state中的数据都可以
add(context,count){
// 使用commit,触发mutations中的函数
console.log(context)
console.log(count)
context.commit('mAdd',count)
}
},
第四步:
mutations: {
mAdd(state,count){
console.log(state)
console.log(count)
state.num = state.num+=count
}
},
三、Router使用
提倡单页面应用,需要做页面的跳转----》借助于Router实现页面组件的跳转
1 简单使用
-页面跳转(咱们之前学过了)
-写个页面组件
-在router--->index.js--->routes数组中加入一个路由即可
2 组件中实现页面跳转
-两种方式
-方式一:使用 router-link 标签,to 地址
<router-link to="/about"></router-link>
-方式二:js控制
this.$router.push('/about')
3 路由跳转时,可以使用对象
-1 通过对象跳转路由name形式: <router-link :to="{name:'about'}">
-2 通过对象跳转路由path形式: <router-link :to="{path:'/about'}">
-3 对象中可以有query属性,是个对象类型,会把里面的key-value拼到路径后面
-4 在另一个页面中取出地址栏中数据:console.log(this.$route.query)
-5 这种传递方式和 3 一样 <router-link to="/about?name=lqz&age=19">
-6 注意区分:
this.$route:当前路由对象,当前路径,取传递数据。。。
this.$router:整个路由对象,主要做跳转用
-7 路径中分割出 参数
-配置:
{
path: '/detail/:pk',
name: 'detail',
component: DetailView
},
-在路由中取:
this.$route.params.pk
-8 路由跳转时,使用 7 的样子
-this.$router.push({name: 'detail', params: {pk: 999}})
-<router-link :to="{name:'detail',params:{pk:88}}">
4 this.router 的一些方法
this.$router.push(path): 相当于点击路由链接(可以返回到当前路由界面)
this.$router.replace(path): 用新路由替换当前路由(不可以返回到当前路由界面)
this.$router.back(): 请求(返回)上一个记录路由
this.$router.go(-1): 请求(返回)上一个记录路由
this.$router.go(1): 请求下一个记录路由
四、多级路由
使用步骤:
- 1 新建一个页面组件(LqzView),配置路由
{
path: '/lqz',
name: 'lqz',
component: LqzView,
},
2 在页面中,想再显示页面组件,实现点击切换的效果
<h1>lqz页面</h1>
<router-link to="lqz01">
<button>lqz-01</button>
</router-link>
<router-link to="lqz02">
<button>lqz-02</button>
</router-link>
<router-view>
# 以后这里变换页面组件,多级路由
</router-view>
-3 新建两个页面组件,Lqz01.vue,Lqz02.vue,配置路由children
{
path: '/lqz',
name: 'lqz',
component: LqzView,
children: [ //通过children配置子级路由
{
path: 'lqz01', //此处一定不要写:/news
component: Lqz01
},
{
path: 'lqz02',//此处一定不要写:/message
component: Lqz02
}
]
},
五、路由守卫和两种工作模式
路由守卫
前置路由守卫,再进入路由之前做判断
写在router-index.js中,以后访问任意一个路由,都会执行这个代码
router.beforeEach((to, from, next) => {
console.log('前置路由守卫', to, from)
// 要是访问lqz01,都不能跳转'
// 如果没有登录,不能访问
if (to.path == '/lqz/lqz01') {
alert('你灭有权限')
} else {
next() # 继续访问
}
路由器的两种工作模式
- 1 对于一个url来说,什么是hash值?—— #及其后面的内容就是hash值。
- 2 hash值不会包含在 HTTP 请求中,即:hash值不会带给服务器。
- 3 hash模式:
地址中永远带着#号,不美观 。
若以后将地址通过第三方手机app分享,若app校验严格,则地址会被标记为不合法。
兼容性较好。 - 4 history模式:
地址干净,美观 。
兼容性和hash模式相比略差。
应用部署上线时需要后端人员支持,解决刷新页面服务端404的问题
六、localstorage和sessionstorage,和cookie
前端存储数据
- 登录成功,有token,存本地
- 不登陆加购物车
前端可以存数据的位置:
localstorage:永久存储,除非你删除,关闭浏览器,再打开还会在
sessionstorage:只在当前会话生效,关闭浏览器,就没了
cookie:有过期时间,到了过期时间,自动删除
都是在浏览器存储数据的--》存数据有什么用?
-登录成功 token存在本地
-不登录加入购物车功能,迪卡侬存在了localStorage中
-组件间通信----》 跨组件
localStorage
-永久存储,除非清空缓存,手动删除,代码删除
-localStorage.setItem('userinfo', JSON.stringify(this.userInfo))
-localStorage.getItem('userinfo')
-localStorage.clear() // 清空全部
-localStorage.removeItem('userinfo')
sessionStorage
-关闭浏览器,自动清理
-sessionStorage.setItem('userinfo', JSON.stringify(this.userInfo))
-sessionStorage.getItem('userinfo')
-sessionStorage.clear() // 清空全部
-sessionStorage.removeItem('userinfo')
cookie
-有过期时间,到过期时间自动清理
-借助于第三方 vue-cookies
-cookies.set('userinfo', JSON.stringify(this.userInfo))
-cookies.get('userinfo')
-cookies.delete('userinfo')
- sessionstorage localstorage elementui Router cookiesessionstorage localstorage router cookie sessionstorage localstorage elementui router sessionstorage localstorage cookie sessionstorage localstorage session cookie sessionstorage localstorage cookies vue sessionstorage localstorage cookies 前端sessionstorage localstorage cookies 前端sessionstorage localstorage cookie sessionstorage localstorage 前端sessionstorage缓存localstorage