Vue基础

简介: Vue基础

一.Vue介绍

1.什么是Vue?

HelloWorld

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="../assets/js/vue.js"></script>
    <title>Helloworld</title>
</head>
<body>
    <h1>Hello World</h1>
    <hr>
    <div id="app">
        {{message}}
    </div>
 
    <script type="text/javascript">
        var app=new Vue({
            el:'#app',
            data:{
                message:'hello Vue!'
            }
        })
    </script>
</body>
</html>

看起来这跟单单渲染一个字符串模板非常类似,但是 Vue 在背后做了大量工作。现在数据和 DOM 已经被绑定在一起,所有的元素都是响应式的。我们如何知道?

打开你的浏览器的控制台(就在这个页面打开),并修改 app.message,你将看到上例相应地更新。

2.组件化构建

组件系统是 Vue 的另一个重要概念,因为它是一种抽象,允许我们使用小型、通常可复用的组件构建大型应用。仔细想想,几乎任意类型的应用界面都可以抽象为一个组件树:

二.基础应用

1.Vue实例

每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的根实例 启动的:

var vm = new Vue({

// 选项

})

,在实例化 Vue 时,需要传入一个选项对象,它可以包含数据、模板、挂载元素、方法、生命周期钩子等选项。

2.属性和方法

每个 Vue 实例都会代理其 data 对象里所有的属性。

注意只有这些被代理的属性是响应的。如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。

3.实例生命周期

每个 Vue 实例在被创建之前都要经过一系列的初始化过程。例如,实例需要配置数据观测(data observer)、编译模版、挂载实例到 DOM ,然后在数据变化时更新 DOM 。在这个过程中,实例也会调用一些 生命周期钩子 ,这就给我们提供了执行自定义逻辑的机会。

##4.常用指令:##

指令 (Directives) 是特殊的带有前缀 v- 的特性。指令的值限定为绑定表达式,指令的职责就是当其表达式的值改变时把某些特殊的行为应用到 DOM 上。

1.v-if v-else v-show 指令

注意:

v-else 元素必须紧跟在 v-if 或者 v-else-if 元素的后面——否则它将不会被识别。

用于根据条件展示元素的选项是 v-show 指令,不同的是带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 是简单地切换元素的 CSS 属性 display 。

注意, v-show 不支持 语法,也不支持 v-else。

<h1 v-show="ok">Hello!</h1>
• 1

2.v-for指令

 <ul>
  <li v-for="(student,index) in students">
    {{index}}:{{student.name}} - {{student.age}}
  </li>
</ul>

3.v-text & v-html指令

如果在javascript中写有html标签,用v-text是输出不出来的,这时候我们就需要用v-html标签了:

  • 注意:在生产环境中动态渲染HTML是非常危险的,因为容易导致XSS攻击。所以只能在可信的内容上使用v-html,永远不要在用户提交和可操作的网页上使用。

4.v-model指令

<input type="text" v-model="message">

5.v-bind指令

<input type="text" v-model="message">

5.1、直接绑定class样式

<div :class="className">1、绑定classA</div>

5.2、绑定classA并进行判断,在isOK为true时显示样式,在isOk为false时不显示样式。

<div :class="{classA:isOk}">2、绑定class中的判断</div>

5.3、绑定class中的数组

<div :class="[classA,classB]">3、绑定class中的数组</div>

5.4、绑定class中使用三元表达式判断

<div :class="isOk?classA:classB">4、绑定class中的三元表达式判断</div>

5.5、绑定style

<div :style="{color:red,fontSize:font}">5、绑定style</div>

5.6、用对象绑定style样式

<div :style="styleObject">6、用对象绑定style样式</div>

5.7.v-pre & v-cloak & v-once指令

这时并不会输出我们的message值,而是直接在网页中显示{{message}}

5.8 .v-cloak:

在vue渲染完指定的整个DOM后才进行显示。它必须和CSS样式一起使用。

5.9 .v-once:

在第一次DOM时进行渲染,渲染完成后视为静态内容,跳出以后的渲染过程

6.模版语法:

文本插值:

Message: {{ msg }}

js表达式:

{{ number + 1 }}<br>
{{ ok ? 'YES' : 'NO' }}<br>
{{ message.split('').reverse().join('') }}<br>
<div v-bind:id="'list-' + id"></div><br>

过滤器:过滤器可以用在两个地方:mustache 插值和 v-bind 表达式。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符指示,允许多层过滤器:

{{ message | capitalize }}<br>
<div v-bind:id="message | capitalize"></div>

计算属性:计算属性是基于它们的依赖进行缓存的。计算属性只有在它的相关依赖发生改变时才会重新求值。

7.事件监听:

用 v-on 指令监听 DOM 事件来触发一些 JavaScript 代码。

事件修饰符:

> 阻止单击事件冒泡<br>
> <a v-on:click.stop="doThis"></a><br>
> 提交事件不再重载页面<br>
> <form v-on:submit.prevent="onSubmit"></form><br>
> 修饰符可以串联<br>
> <a v-on:click.stop.prevent="doThat"></a><br>
> 点击事件将只会触发一次<br>
> <a v-on:click.once="doThis"></a>

8.表单绑定 :##

  • 文本
  • 多行文本
  • 复选框
  • 单选按钮
  • 选择列表
  • 绑定value
  • 复选框
  • 单选按钮
  • 选择列表设置
  • 修饰符


相关文章
|
2天前
|
JavaScript 前端开发
Vue,如何引入样式文件
Vue,如何引入样式文件
|
2天前
|
JavaScript
|
1天前
|
JavaScript
vue滚动到页面底部时加载
vue滚动到页面底部时加载
5 1
|
2天前
|
JavaScript 前端开发 API
|
2天前
|
JavaScript 前端开发 网络架构
Vue如何实现页面跳转路由,实现单页面跳转
Vue如何实现页面跳转路由,实现单页面跳转
|
2天前
|
JavaScript
Vue搭配ELEMENT组件,路由不能正确跳转bug
Vue搭配ELEMENT组件,路由不能正确跳转bug
Vue搭配ELEMENT组件,路由不能正确跳转bug
|
1天前
|
JavaScript 前端开发
一个好看的vue admin模板
这是一个关于Vue管理模板的引用,提到了[PanJiaChen](https://github.com/PanJiaChen/vue-admin-template)在GitHub上的`vue-admin-template`项目。该项目是一个前端管理模板,链接指向了详细的资源。页面中还包含了一张图片,但markdown格式中无法直接显示。简而言之,这是关于一个基于Vue的后台管理界面模板的参考信息。
|
1天前
|
资源调度 JavaScript API
Vue-treeselect:为Vue应用程序提供强大选择器的指南
Vue-treeselect:为Vue应用程序提供强大选择器的指南
6 0
|
1天前
|
JavaScript
vue知识点
vue知识点
5 0
|
2天前
|
JavaScript