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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({$ |2 {/ A2 J8 y0 A+ x
  2.   // 选项5 ?# M$ i9 V. @! B1 t
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    " y7 y8 C$ N) u6 Z: ?
  2.     <h1>site : {{site}}</h1>; I5 u! V/ o& E+ N% p- F
  3.     <h1>url : {{url}}</h1># X0 ^* J& \0 t- ]3 t
  4.     <h1>{{details()}}</h1>) g1 j8 r, T) f) H6 |9 E) h8 r
  5. </div>
    ) h$ E& C4 b1 i! ~. v$ \* n4 E
  6. <script type="text/javascript">
    7 D3 x: K  n) F, j, L& i
  7.     var vm = new Vue({
    , y  {% d9 }- `1 x6 u6 g9 a
  8.         el: '#vue_det',# \" Z& S' E; N0 ~* @
  9.         data: {
    2 c" p' n$ J0 W4 ?7 Z- Q
  10.             site: "菜鸟教程",
    * w. _; o' R# A
  11.             url: "www.runoob.com",) x; l$ P5 b- w( d: j# C' }
  12.             alexa: "10000"
    0 c% e! @+ {- o
  13.         },
    % |% d. r' ?  K9 R3 j
  14.         methods: {8 t$ t! P8 s# G) m5 z
  15.             details: function() {/ A) {: }! X" ?; C$ V1 r
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";4 d% n/ \$ Q6 v' b! y
  17.             }
    ; _# R9 i- i! i+ A& u- \
  18.         }
    4 e6 d& P& s6 E% [- E4 S6 n
  19.     })+ L0 Q, d$ |# ~) ^' ?
  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">
    . Q0 S( B$ W6 [- O  l" v
  2.     <h1>site : {{site}}</h1>1 A5 P# `9 ^- N" l
  3.     <h1>url : {{url}}</h1>
    ! S' r8 K& D, R" X, A" m% g
  4.     <h1>{{details()}}</h1>
    # W4 |) _3 t# Z) n; u6 l# V
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    ! R1 R. \7 S5 M! i- F* Y; B
  2.     <h1>site : {{site}}</h1>1 X. P  }  K1 Z& V( E8 c5 y, |
  3.     <h1>url : {{url}}</h1>' i6 g. f# A! w$ a
  4.     <h1>Alexa : {{alexa}}</h1>9 g# p" l% N; K- p
  5. </div>
    ( _; |. |. d% P4 u1 l
  6. <script type="text/javascript">
    ! r- e6 ?1 a, k* `  s
  7. // 我们的数据对象; c5 D; B/ f) H( c
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    / Q, N' v* ~  O( O
  9. var vm = new Vue({
    / O& g! }# w+ v1 ^/ ^
  10.     el: '#vue_det',
    ; y$ }" ^# {3 J$ {- D- [4 y; x
  11.     data: data9 _0 D$ p4 |0 R% r
  12. })
    ! [- a3 D/ u7 I9 o) q- a9 h
  13. // 它们引用相同的对象!, z. w: S4 N4 w. L
  14. document.write(vm.a === data.a) // true+ f& ~- l1 m8 U$ E6 L1 i
  15. document.write("<br>")
    9 V( Y" s  j" {. v' J& H% x
  16. // 设置属性也会影响到原始数据$ q! V9 _6 F# Y( l3 j5 ]* A
  17. vm.site = "Runoob": M/ S& D4 i7 F0 q2 p. X; v
  18. document.write(data.site + "<br>") // Runoob: _9 k* V6 {3 o
  19. ( A1 l6 S" ~9 b/ g# P
  20. // ……反之亦然- k# S2 O5 H7 w; q: \3 ]0 E' w4 D+ F
  21. data.alexa = 12347 T" d" o& o6 B" C
  22. document.write(vm.alexa) // 1234/ m2 G1 I8 K  M- h
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">9 T9 f  {# {+ ?# ^' n3 c5 k
  2.     <h1>site : {{site}}</h1>8 A9 n7 u- @- v% ]  h6 V; R" r
  3.     <h1>url : {{url}}</h1>
    / e: L9 \0 @& W! K
  4.     <h1>Alexa : {{alexa}}</h1>1 t4 H* s6 L# F! b& h& P
  5. </div>
    5 M5 F6 }7 ^% a3 r0 Q6 `- S
  6. <script type="text/javascript">
    # p9 ]3 q1 G! Z* m0 q
  7. // 我们的数据对象1 q& V* v& h- F5 D, p
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}# {4 r4 ?* I- z& v
  9. var vm = new Vue({
    , w* X+ }( {4 K8 ?, [! f: `# z5 K
  10.     el: '#vue_det',
    + p; _4 m' d5 j& `
  11.     data: data
    ! v+ N* f9 n; J/ o) m0 m( ~
  12. })
    ( c; {* z& p  M) z

  13. - q6 c$ O# o7 t% V' z& T/ }; _: R( V
  14. document.write(vm.$data === data) // true
    ( W/ k) }! S9 h. H; x
  15. document.write("<br>") // true0 g: }/ @' U' T, x8 i# U
  16. document.write(vm.$el === document.getElementById('vue_det')) // true7 v/ H  Q4 ]  J; e& u
  17. </script>
复制代码

- Y3 h- y6 n9 S$ K7 t* k
2 i0 [) Q9 v, c3 y1 `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-17 23:26 , Processed in 0.051156 second(s), 19 queries .

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