博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初识Vue.js
阅读量:6766 次
发布时间:2019-06-26

本文共 3790 字,大约阅读时间需要 12 分钟。

hot3.png

什么是vue.js

  • 一个构建数据驱动的web界面的库;
  • Vue.js的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件
  • Vue.js 的核心是一个响应的数据绑定系统,它让数据与DOM保持同步非常简单;

安装vue.js

  • 在 Vue.js 的官网上直接下载 vue.min.js,并用 <script> 引用;

  • 使用 CDN

    • BootCDN(国内) : ;
    • unpkg:, 会保持和 npm 发布的最新的版本一致。
    • cdnjs : ;

    注: 国外的版本比较稳定,国内还没发现哪一家比较好,目前还是建议下载到本地;

  • 使用NPM: npm install Vue

vue.js的属性、方法、生命周期

先看一个代码实例

window.onload=function(){	var dataList={		name: "vue",		age:2	};	var commonfun={		sayHello:function(){			return 'hello,world'		}	};	var app  = new Vue({		el:'h2',		data:dataList,		methods:commonfun	});}
  • 属性:每个 Vue 实例都会代理其 data、methods、filters 对象里所有的属性,并且具有双向绑定功能:

    app.name===dataList.name;//true  app.age===dataList.age;//true  console.log(app.sayHello());//hello,world

    注: 被代理的属性是响应的。如果在实例创建之后添加新的属性到实例上,它不会触发视图更新,如下代码会报错;

    //.htm 文件 中  

    {
    {title}}

    //js文件中 window.onload=function(){ var dataList={ name: "vue", age:2, }; var app = new Vue({ el:'h2', data:dataList }); app.title="this is vue"; } //vue.min.js:6 ReferenceError: title is not defined
  • Vue 实例暴露了一些有用的实例属性与方法。这些属性与方法都有前缀 $ ,以便与代理的数据属性区分;

  • var app  = new Vue({  	el:'#h',  	data:dataList  });  console.log(app.$el === document.getElementById('h'));//true
  • 声明周期:Vue 实例在创建时有一系列初始化步骤——例如,它需要建立数据观察,编译模板,创建必要的数据绑定。在此过程中,它也将调用一些生命周期钩子,给自定义逻辑提供运行机会;

Vue数据绑定

Vue.js 的模板是基于 DOM 实现的,所有的 Vue.js 模板都是可解析的有效的 HTML,且通过一些特殊的特性做了增强。

  • 插入值

    {
    {value}}
  • 绑定表达式:表达式将在所属的 Vue 实例的作用域内计算。每个绑定只能包含单个表达式

    {
    { number + 1 }} {
    { ok ? 'YES' : 'NO' }} {
    { message.split('').reverse().join('') }} {
    { var a = 1 }}
    {
    { var a = 1 }}
    {
    { if (ok) { return message } }}
  • 过滤器: 管道语法不是 JavaScript 语法,因此不能在表达式内使用过滤器,只能添加到表达式的后面

    {
    { message | capitalize }} //过滤器可以串联 {
    { message | filterA | filterB }} //过滤器也可以接受参数 {
    { message | filterA 'arg1' arg2 }}
  • 指令:指令 (Directives) 是特殊的带有前缀 v- 的特性

    Hello!

    //有些指令可以在其名称后面带一个“参数”,中间放一个冒号隔开 //修饰符 (Modifiers) 是以半角句号开始的特殊后缀,用于表示指令应当以特殊方式绑定
  • 缩写

Vue计算属性

在模板中绑定表达式是非常便利的,但是它们实际上只用于简单的操作。 如果需要多于一个表达式的逻辑,应当使用计算属性。

  • computed 属性

    a = {
    {a}}, b = {
    { b }}
    window.onload=function(){ var vm = new Vue({ el: '#demo', data:{ a:1 }, computed:{ b: function () { return this.a + 1; }}, }); } //a=1,b=2;

    这里我们声明了一个计算属性 (computed) b。我们提供的函数将用作属性vm.b的getter

  • vs.$watch 属性

    Vue.js提供了一个方法$watch,用于观察Vue实例上的数据变动。

    {
    {fullName}}

    更好的办法是使用计算属性而不是一个命令式的$watch回调。

    {
    {fullName}}
    window.onload=function(){ var vm = new Vue({ el: '#demo', data:{ firstName:"foo", lastName:"bar" }, computed:{ fullName:function(){ return this.firstName+" "+this.lastName; } }, }); }
  • 计算 setter

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

    computed: {    fullName: {      // getter      get: function () {        return this.firstName + ' ' + this.lastName;      },      // setter      set: function (newValue) {        var names = newValue.split(' ');        this.firstName = names[0];        this.lastName = names[names.length - 1];      }    }  }

类与样式绑定

class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性。

  • 绑定HTML Class

    • 对象语法

      v-bind:class 指令可以与普通的 class 特性共存; 当 isA 和 isB 变化时,class 列表将相应地更新。

      直接绑定数据里的一个对象:

      data: { classObject: { 'class-a': true, 'class-b': false } }
    • 数组语法

      根据条件切换列表中的 class,可以用三元表达式

  • 绑定内联样式

    • 对象语法 v-bind:style对象语法十分直观,看着像 CSS的JavaScript 对象。CSS 属性名可以用驼峰式或短横分隔命名:

      data: { activeColor: 'red', fontSize: 30 } 直接绑定到一个样式对象,让模板更清晰
      data: { styleObject: { color: 'red', fontSize: '13px' } }
    • 数组语法

      v-bind:style 的数组语法可以将多个样式对象应用到一个元素上

    • 自动添加前缀

      当 v-bind:style 使用需要厂商前缀的 CSS 属性时,如 transform,Vue.js 会自动侦测并添加相应的前缀

转载于:https://my.oschina.net/u/1778998/blog/1525055

你可能感兴趣的文章
甲骨文11.9亿美元收云解决方案供应商Aconex,预计明年上半年完成
查看>>
Python 做图片清晰度识别
查看>>
硬核NeruIPS 2018最佳论文,一个神经了的常微分方程
查看>>
个推Node.js 微服务实践:基于容器的一站式命令行工具链
查看>>
Express源码学习-路由篇
查看>>
Android平台上图片/视频选择,编辑和压缩的一站式解决方案
查看>>
从零开始撸一个Fresco之总结
查看>>
我想把 FileProvider 聊的更透彻一些
查看>>
2018年8月Top 10 JavaScript开源项目
查看>>
手游开发如何选择后端服务
查看>>
开学季你最想要的这10本编程新书
查看>>
守护客户数据价值:企业级NewSQL HTAP分布式云TBase架构详解
查看>>
Web3与智能合约交互实战
查看>>
交互式数据可视化-D3.js(二)选择集和数据
查看>>
Logan:美团点评的开源移动端基础日志库
查看>>
怎样给一个Vue页面添加大纲导航
查看>>
ElementUI的Table组件中的renderHeader方法研究
查看>>
Apache Rewrite
查看>>
深入K8S Job(一):介绍
查看>>
generic netlink 编程快速入门
查看>>