您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 10286|回复: 0
打印 上一主题 下一主题

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    0 m' x3 _3 |8 A( U* A8 z" r) H! _$ |
  2.   // 选项
    # A4 b8 f$ Q& \7 R
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">: r2 E! D& K! R" b
  2.     <h1>site : {{site}}</h1>: }% a4 x% M6 T  J8 w; h
  3.     <h1>url : {{url}}</h1>
    ! r4 B$ Y9 W+ g' j  i: \
  4.     <h1>{{details()}}</h1>! I) ~8 s; v$ v4 m* S7 E
  5. </div>6 i( }9 b5 D' c2 K8 P5 b; F' g
  6. <script type="text/javascript">) M3 {) K, ?$ W- l
  7.     var vm = new Vue({
    ( S! g  M0 S6 s  h, d( `
  8.         el: '#vue_det',
    " a# R3 g! Q; g. z
  9.         data: {
    ) `3 ~* ]- x2 W3 @2 x
  10.             site: "菜鸟教程",4 w) d0 p: j  `4 E, a1 [) r
  11.             url: "www.runoob.com",
    5 ~. ~/ \* l& {% M- k6 A
  12.             alexa: "10000"( z/ _. `6 `3 U2 k! M
  13.         },
    2 G5 k% |# l4 C% n3 a1 B
  14.         methods: {% A; n  I$ N* ]' M& y: ?* Z" Y
  15.             details: function() {
    . `1 z+ D/ N2 a' c0 G. S
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";/ D' z5 V7 {3 Y) O: g
  17.             }
    + d7 c8 R/ E$ d# Y1 |) n3 x
  18.         }/ z* Z/ s! O! t1 b- {5 j# z; q5 g( p; ^
  19.     })/ n9 {5 w0 a2 A: w0 Q' k1 r, F9 B
  20. </script>
复制代码
可以看到在 Vue 构造器中有一个el 参数,它是 DOM 元素中的 id。在上面实例中 id 为 vue_det,在 div 元素中:
  1. <div id = "vue_det"></div>
复制代码
这意味着我们接下来的改动全部在以上指定的 div 内,div 外部不受影响。
接下来我们看看如何定义数据对象。
data 用于定义属性,实例中有三个属性分别为:site、url、alexa。
methods 用于定义的函数,可以通过 return 来返回函数值。
{{ }} 用于输出对象属性和函数返回值。
  1. <div id="vue_det">
    2 V4 e1 I, t, \9 e# U+ J# W+ a
  2.     <h1>site : {{site}}</h1>0 [0 u) a2 P% v7 k6 Z
  3.     <h1>url : {{url}}</h1>
    . z6 t2 C9 H: _; O( m- V* v8 m! l6 `
  4.     <h1>{{details()}}</h1>: F5 u1 `: o' H1 `) E
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">9 t: h7 n& Y" b: t3 Z3 h3 \3 h) I
  2.     <h1>site : {{site}}</h1>  x1 a0 B% M; j' W- Z  J
  3.     <h1>url : {{url}}</h1>
    ; ^0 W% b% d& E2 L" s1 t
  4.     <h1>Alexa : {{alexa}}</h1>& U& |  y9 H0 @; p
  5. </div>
    3 L9 |+ ?) M: p( q2 m  P
  6. <script type="text/javascript">6 R5 j, l' N# q% E$ P
  7. // 我们的数据对象
    : [+ H% X# O- b1 O- i' {5 W
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
      w2 l) y& ^5 b$ D; {/ M  Q; o
  9. var vm = new Vue({
    ( {' o2 S; S# T
  10.     el: '#vue_det',
    & N. f# [) A0 _$ l0 `
  11.     data: data2 x5 W  U: ?7 \: _8 M2 F$ O
  12. })3 G4 v: g5 i$ ]" U- n) Z
  13. // 它们引用相同的对象!
    * Q  G0 T; ^5 b3 y3 {* G, q
  14. document.write(vm.a === data.a) // true. i- |+ [* o2 ]4 M5 R% f0 A& B/ F8 ^
  15. document.write("<br>"), e& l/ L0 a' [6 p/ Q4 L
  16. // 设置属性也会影响到原始数据( P2 L  P. D% `8 i* [2 p. ?1 x
  17. vm.site = "Runoob"
    7 ~4 A! E% }$ I0 p$ c. f2 d7 I
  18. document.write(data.site + "<br>") // Runoob
    5 @" P& K* w# k0 J. h) S$ k& r% |
  19. , D4 A( Y& I5 O; |; H3 h+ q7 w$ h
  20. // ……反之亦然
    9 L' [! ?5 R" {6 P% `
  21. data.alexa = 1234
    9 x. y0 U, A' e& G* x! x% D
  22. document.write(vm.alexa) // 1234
    % R$ A. z& V, u9 A
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">. @) u) [* A5 G# M& ~, H2 y( S
  2.     <h1>site : {{site}}</h1>, C2 B  U. c1 U3 G- @
  3.     <h1>url : {{url}}</h1>
    - V/ ]1 i" y2 X
  4.     <h1>Alexa : {{alexa}}</h1>
    8 G8 `* c. g% p4 _+ Z$ b; p! V4 u9 B5 F
  5. </div>, @8 H8 h, T$ L- E$ W
  6. <script type="text/javascript">
    ) Q' k' d& O" P5 ?
  7. // 我们的数据对象: o* L$ E, A( x8 y- [
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}+ ]3 I3 g6 q1 G' p/ z; B: m' d. Q
  9. var vm = new Vue({
    . x- A( U0 v5 t. K6 g( A3 M$ H7 h
  10.     el: '#vue_det',; B4 K. u% S, X% F# ]
  11.     data: data$ Q+ p. b! k& Q
  12. })3 l8 W. _( A3 z& E4 X* X% ?* U/ {0 L

  13. - \$ a  m, t! w8 R
  14. document.write(vm.$data === data) // true, W0 _/ Z/ W8 h3 T+ Q% d
  15. document.write("<br>") // true
    , W& T( f: B" ]# l5 }) P
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    ) m6 f; d4 i; H
  17. </script>
复制代码

1 g5 R; {/ q' r" w+ p. |
6 {" z5 s" `; W/ ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-18 11:58 , Processed in 0.102996 second(s), 19 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!