第四十四天

●scoped 属性

     HTML5 中的新属性(布尔属性)。如果使用该属性,则样式仅仅应用到 style 元素的父元素及其子元素。父组件的样式将不会渗透到子组件中。

     实现组件的私有化,不对全局造成样式污染,表示当前style属性只属于当前模块。

●CSS动画

     动画允许元素从一种样式逐渐变为另一种样式。可以根据需要多次更改所需的CSS属性。要使用CSS动画,必须首先为动画指定一些关键帧。

     关键帧保持元素在特定时间具有的样式。

要使用关键帧,先创建一个带名称的 @keyframes 规则,对使用 animation-name 属性将动画同其关键帧声明匹配。每个 @keyframes 规则包含多个关键帧,也就是一段样式块语句,每个关键帧有一个百分比值作为名称,代表在动画进行中,在哪个阶段触发这个帧所包含的样式。

     可以按任意顺序列出关键帧百分比;它们将按照其应该发生的顺序来处理。

@keyframes规则

     在@keyframes规则中指定CSS样式时,动画将在特定时间逐渐从当前样式更改为新样式。要使动画生效,必须将动画绑定到元素。

    from等价于 0%。

    to等价于 100%。

如果多个关键帧使用同一个名称,以最后一次定义的为准。 

@keyframes 不存在层叠样式的情况,所以动画在一个阶段只会使用一个的关键帧的数据。

●Vue中的事件修饰符:

1.prevent:阻止默认事件(常用)(加了它,点击不会跳转;不加,点击会跳转);

2.stop:阻止事件冒泡(常用)(不加,showInfo中的弹窗会执行两次;加了,showInfo中的弹窗只执行一次);

3.once:事件只触发一次(常用);

4.capture:使用事件的捕获模式;

5.self:只有event.target是当前操作的元素时才触发事件;

6.passive:事件的默认行为立即执行,无需等待事件回调执行完毕;

●键盘事件

.Vue中常用的按键别名:

回车 => enter

删除 => delete (捕获“删除”和“退格”键)

退出 => esc

空格 => space

换行 => tab(特殊,必须配合keydown去使用)

上 => up

下 => down

左 => left

右 => right

2.Vue未提供别名的按键,可以使用按键原始的key值去绑定,但注意要转为kebab-case(短横线命名)

3.系统修饰键(用法特殊):ctr1、alt、shift、meta

(1).配合keyup使用:按下修饰健的同时,再按下其他键,随后释放其他键,事件才被触发。

(2).配合keydown使用:正常触发事件。

4.Vue.config.keyCodes.自定义键名=键码,可以去定制按键别名

●Vue Router

     Vue.js 官方的路由管理器。

•相关配置

①首先引入vue和vue-router:

     import Vue from "vue";

     import VueRouter from "vue-router";

②再告知Vue使用vue-router

     Vue.use(VueRouter);

③定义一个新的VueRouter,并export到外面,方便在mian.js中的new Vue中注册。

const router = new VueRouter({

  mode: "history",

  base: process.env.BASE_URL,

  routes

});

export default router;

④new VueRouter有三个参数。

    mode代表路由模式,它的默认值是hash模式,hash模式很丑,且不支持锚定向,所以如果希望有个漂亮的路由或支持锚定向,可以考虑使用history模式。

    base代表应用的基路径,process.env.BASE_URL是指从从环境进程中根据运行环境获取的api的base_url

    routes 则是具体的路由配置列表,这个参数最核心也最关键

•path:指定当前路由的路径,当浏览器url与path匹配时router-view就会渲染当前route对象指定视图组件component/components。

    Vue的router支持动态路径,以 "/:属性名"形式作为当前path字符串中的一部分。这段字符串路由将作为动态路由匹配真实url上响应字符串信息

•component : Component | () => import(组件):当前浏览器url与路由的path匹配时所渲染的路由组件

     路由的懒加载,通过函数的形式,可以让项目中哪些不许一开始就要加载的组件,加载到项目中去     

     只有浏览器跳转到当前路由时,该路由组件才会加载到项目中去    

     减少不必要的加载降低应用加载速度和运行带宽

在项目开发中应用中不需要一开始就加载的路由组件请使用懒加载

•name: 给路由命名,让路由成为具名路由。路由的导航就可以使用name进行跳转。(路由使用location导航时只有具名路由可以直接接受pramas传参)

•redirect: string | Location | Function

   重定向路由,当前应用访问导航至该路由时,这个路由会(以替换的形式)自动重定向到redirect指定的新路由

     redirect 支持函数的形式,该函数接收一个参数就是个访问oldpath时生成的location对象

    redirect 函数的形式必须返回重定向路由的path或location

•props: boolean | Object | Function

     路由的动态匹配一般情况下只能通过,this.$route.params获取动态匹配到的值。

    当设置props属性后动态匹配到的键值对可以作为组件props直接传递给视图组件,这样大大降低组件的耦合性 布尔值。

    如果 props 被设置为 true,route.params 所有键值对将会被设置为组件props属性。

      props对象形式,就是将对象key作为渲染组件props属性名,value就是对应属性值 。

      props的函数写法接收当前路由信息对象作为参数,该函数会返回一个对象.对象的key就是渲染组件props属性名,value就是对应属性值 。

•children?: Array[RouteConfig]

嵌套路由,可以给当前路由设置二级路由

•beforeEnter: (to: Route, from: Route, next: Function) => void

     路由的独享守卫,当应用将要导航到当前路由时,可以使用该守卫进行一些逻辑运算实现是否阻止本次导航。

●history模式和hash模式

    vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。

如果不想要很丑的 hash,可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。

•history模式

history :利用了 HTML5 History Interface 中新增的 pushState() 和 replaceState() 方法(需要特定浏览器支持)。

     这两个方法应用于浏览器的历史记录栈,在当前已有的 back、forward、go 的基础之上,它们提供了对历史记录进行修改的功能。

     只是当它们执行修改时,虽然改变了当前的 URL,但浏览器不会立即向后端发送请求。

•hash模式

hash: 即地址栏 URL 中的 # 符号。

比如这个 URL:http://localhost:8081/#/form hash 的值为 #/form。

特点:hash 虽然出现在 URL 中,但不会被包括在 HTTP 请求中,对后端完全没有影响,因此改变 hash 不会重新加载页面。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值