vue必要的知识储备

Vue 核心技术

MVVM 模型

MVVM是 Model-View-ViewModel 的缩写,它是一种软件架构风格

Model:模型, 数据对象(data选项当中 的)

View:视图,模板页面(用于渲染数据)

ViewModel:视图模型,其实本质上就是 Vue 实例

通过数据驱动视图

把需要改变视图的数据初始化到 Vue中,然后再通过修改 Vue 中的数据,从而实现对视图的更新。

声明式编程:

按照 Vue 的特定语法进行声明开发,就可以实现对应功能,不需要我们直接操作Dom元素

{{xxxx}} 双大括号文本绑定(插值表达式)

v-xxxx 以v-开头用于标签属性绑定,称为指令

v-once:一次性插值,当数据改变时,插值处的内容不会更新

v-html:输出HTML指令

v-bind:元素绑定指令

完整格式: v-bind:元素的属性名='xxxx'

缩写格式: :元素的属性名='xxxx'

将数据动态绑定到指定的元素上

v-on:事件绑定指令

完整格式: v-on:事件名称="事件处理函数名"

@事件名称="事件处理函数名"

用于监听 DOM 事件

计算属性和监听器

computed选项定义计算属性

计算属性 类似于methods选项中定义的函数

计算属性 会进行缓存,只在相关响应式依赖发生改变时它们才会重新求值。

函数 每次都会执行函数体进行计算。

计算属性默认只有 getter ,不过在需要时你也可以提供一个 setter

watch

当属性数据发生变化时,对应属性的回调函数会自动调用, 在函数内部进行计算

通过watch选项 或者 vm 实例的$watch()来监听指定的属性

条件渲染 v-if

v-if是否渲染当前元素

v-else

v-else-if

v-show 与v-if类似,只是元素始终会被渲染并保留在 DOM 中,只是简单切换元素的 CSS 属性 display 来显示或隐藏

v-if v-show 比较

v-if)如果在初始条件为假,则什么也不做,每当条件为真时,都会重新渲染条件元素 v-show不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换

v-if有更高的切换开销

v-show有更高的初始渲染开销。

如果需要非常频繁地切换,则使用 v-show 较好;如果在运行后条件很少改变,则使用 v-if 较好。

v-for

v-for 迭代数组  v-for="(alias, index) in array"

v-for 迭代对象的属性  v-for="(value, key, index) in Object"

事件处理 v-on

v-on:事件名="函数名"或v-on:事件名="函数名(参数...)"

用于监听DOM事件

事件修饰符

.stop阻止单击事件继续传播event.stopPropagation()

.prevent阻止事件默认行为event.preventDefault()

.once点击事件将只会触发一次

表单数据双向绑定v-model

单向绑定:数据变,视图变;视图变,数据不变

双向绑定:数据变,视图变;视图变,数据变

过渡&动画效果

1.xxx-enter:定义显示前的效果。

2.xxx-enter-active:定义显示过程的效果。

3.xxx-enter-to:定义显示后的效果。

4.xxx-leave:定义隐藏前的效果。

5.xxx-leave-active定义隐藏过程的效果。

6.xxx-leave-to定义隐藏后的效果。

v- text等价于{{}}⽤于显示内容,但区别在于:{{}}会造成闪烁问题, v-text 不会闪烁

过滤器

过滤器对将要显示的文本,先进行特定格式化处理,然后再进行显示

全局过滤器
Vue.filter(过滤器名称,function(value1[value2], ]){


})

在Vue实例中使用 filter 选项 , 当前实例范围内可用 
new Vue({
filters:{
过滤器名称:function(value1[value2, ]){

}
}
})

过滤器可以用在两个地方:双花括号 {{}} v-bind 表达式

自定义插件

  1. 插件通常会为 Vue 添加全局功能,一般是添加全局方法/全局指令/过滤器等

  2. Vue 插件有一个公开方法 install ,通过 install 方法给 Vue 添加全局功能

  3. 通过全局方法 Vue.use() 使用插件

Vue 组件化开发

组件(component) 是 Vue.js 最强大的功能之一

全局注册

一般把网页中特殊的公共部分注册为全局组件

Vue.component("组件名",{
template:'定义组件模板',
data:function(){
//data选项在组件中必须是一个函数
return {}
}
//其他选项:methods
})

局部注册(子组件)

一般把一些非通用部分注册为局部组件,一般只适用于当前项目的。

Vue 父子组件间通信

  1. props 父组件向子组件传递数据

声明组件对象中定义 props

方式1:指定传递属性名,注意是 数组形式

方式2:指定传递属性名和数据类型,注意是 对象形式

指定属性名、数据类型、必要性、默认值

props 只用于父组件向子组件传递数据

所有标签属性都会成为组件对象的属性, 模板页面可以直接引用

如果需要向非子后代传递数据,必须多层逐层传递

兄弟组件间也不能直接 props 通信, 必须借助父组件才可以

slot插槽

主要用于父组件向子组件传递 标签+数据

传递的插槽标签中的数据处理都需要定义所在父组件中

Vue.js 可通过 PubSubJS 库来实现非父子组件之间的通信 ,使用 PubSubJS 的消息发布与订阅模式,来进行数据的传递。 理解:订阅信息 ==== 绑定事件监听 ,发布消息 ==== 触发事件。

Vue 实例生命周期

生命周期钩子函数

生命周期分为三个阶段:初始化显示,更新显示。销毁vue实例

初始化的钩子函数:

beforeCreate()实例创建前

created()实例创建后

beforeMount()数据挂载前

mounted()数据挂载后

更新阶段的钩子函数

beforeUpdate()模板更新前

updated()模板更新后

销毁阶段的钩子函数:

beforeDestroy()实例销毁前

destroyed()实例销毁后

vue中常用的AJAX库

vue-resource

axios

Vue-Router 路由

通过根据不同的请求路径,切换显示不同组件进行渲染页面

HTML 路由切换

            <!-- 方式1: 传统方式 -->
            <li><a href="#/foo">Go Foo</a></li>
            <li><a href="#/bar">Go Bar</a></li>
            <!-- 方式2: 官方推荐 -->
            <!-- <router-link> 默认会被渲染成一个 `<a>` 标签, -->
            <!-- 通过传入 `to` 属性指定跳转链接,不用像上面加 `#` 号 -->
            <li>
                <router-link to="/foo">Go to Foo</router-link>
            </li>
            <li>
                <router-link to="/bar">Go to Bar</router-link>
            </li>
       <!-- 路由出口: 路由匹配到的组件将渲染在这里 -->
        <router-view></router-view>

缓存路由组件

<keep-alive> 可缓存渲染的路由组件实例

  1. 默认情况下,当路由组件被切换后组件实例会销毁,当切换回来时实例会重新创建。

  2. 如果可以缓存路由组件实例,切换后不用重新加载数据,可以提高用户体验。

Vue-CLI 3.x 脚手架

Vue-CLI 是 Vue 官方提供的, 用来搭建项目脚手架的工具,它是 Vue.js 开发的标准工具,它已经集成了

webpack , 内置好了很多常用配置, 使得我们在使用 Vue 开发项目时更加的标准化。

CLI 服务 ( @vue/cli-service ) 是一个开发环境依赖。针对绝大部分应用优化过的内部的 webpack 配置;

node_modules:存放下载依赖的文件夹
public:存放不会变动的静态文件
index.html:主页面文件
favicon.ico:在浏览器显示的图标
src:源码文件夹
assets:存放组件的静态资源
components:存放一些共用组件
views:存放所有的路由组件
App vue:应用根主组件
main.js:应用入口
gitignore:git版本管制忽略的配置
babel.config.js:es6语法编译配置
package-lock.json:各个包的来源和版本号
package.json:项目基本信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值