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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({, ^' L$ X. V; @- t
  2.   // 选项
    $ [( K& F# h" k. U6 K
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    . k, P# u' ?* o' s' d9 R+ A
  2.     <h1>site : {{site}}</h1>% ]& d& t& A/ H& x7 _7 O! o
  3.     <h1>url : {{url}}</h1>* K' Y; S7 ^0 H$ G: j- F4 M) Y. h
  4.     <h1>{{details()}}</h1>
    ) p; U* Z) ^( N6 o7 D, A9 U
  5. </div>
    ) r3 S6 Y# R% A8 ]: j+ d% s
  6. <script type="text/javascript">" P  f2 Q" K9 w6 r$ l7 Q
  7.     var vm = new Vue({- U9 q+ m3 F6 f, N+ ~
  8.         el: '#vue_det',* ~4 Y2 N/ \- |2 e4 i
  9.         data: {
    ( [9 w7 {* Y) O' v
  10.             site: "菜鸟教程",1 @4 w* a8 w* f1 I+ u) R
  11.             url: "www.runoob.com",
    9 @6 p7 P3 K& A2 _' M
  12.             alexa: "10000"- y! v# j) w1 t% Q0 e* X
  13.         },
    / i3 Y0 o+ M+ U2 w8 k3 P6 l
  14.         methods: {+ |( b  w& b  x6 b4 _$ T
  15.             details: function() {( _$ W- `: p" m, q3 {6 g+ E) v% T
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";. ]/ O( G7 |" K* [: {( m5 s+ _
  17.             }
    9 G" e2 i9 \/ n% ^3 G
  18.         }
    6 |+ w1 |; P9 o+ H- `
  19.     }); N1 S8 F" w/ S% x; t& \8 x- |
  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">/ `0 r$ O" U7 t& e9 X! I# M
  2.     <h1>site : {{site}}</h1>% \: c% T% W5 u% B1 t3 X6 `
  3.     <h1>url : {{url}}</h1>
    5 B$ ^! S( X- n3 a3 d
  4.     <h1>{{details()}}</h1>( z" G* ~- _6 B0 X
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">9 L& u' v. D) ^4 t/ X8 x
  2.     <h1>site : {{site}}</h1>
    7 `1 `+ S1 b# x: w* P9 S0 {
  3.     <h1>url : {{url}}</h1>' N7 m2 j$ X6 a
  4.     <h1>Alexa : {{alexa}}</h1>  s- s$ h3 B/ _. }+ A7 n
  5. </div>
    1 B8 ~% |8 B8 S* `& i5 t
  6. <script type="text/javascript">
    / m$ G; {" e  L. L; {
  7. // 我们的数据对象
      S4 ]0 t5 H9 v
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    9 C- I! |8 E1 t" d0 p# m; W  {
  9. var vm = new Vue({
    8 D3 H5 Q, _  {7 @; E+ [
  10.     el: '#vue_det',
    + t9 K9 D, V0 W- ^+ z, j
  11.     data: data  d) ?( j5 U0 \7 }8 Y  R% @
  12. })
    7 U  H% k0 k/ j  Q# t0 W7 j
  13. // 它们引用相同的对象!
    & J- k9 d4 H" e) w8 H  w; s% w
  14. document.write(vm.a === data.a) // true
    : j# ?8 j7 E. \' K
  15. document.write("<br>")% U8 U8 s+ `" u& z+ e, r
  16. // 设置属性也会影响到原始数据
    9 P1 S. ]/ ~. z. \' R
  17. vm.site = "Runoob"# }. w; W, K) R
  18. document.write(data.site + "<br>") // Runoob( z* p: m! v/ `  w4 f  `  x, {
  19. 9 h8 ^3 U) Q6 |( I# T
  20. // ……反之亦然1 g8 j% i8 g. ], @9 u& m
  21. data.alexa = 1234
    : f$ y% O& @" W
  22. document.write(vm.alexa) // 1234
    - A* V% K! o9 B3 J" m  _
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    - d2 q: O' a; {7 k8 W. \
  2.     <h1>site : {{site}}</h1>! ]: N0 P. Z$ n
  3.     <h1>url : {{url}}</h1>
    # F' I1 p+ J) g( K7 A- F
  4.     <h1>Alexa : {{alexa}}</h1>. i. N$ P. f) R% ^% T. `0 @9 `
  5. </div>  |& @2 f6 ]" C
  6. <script type="text/javascript">! U" F% U. X# ]: \0 E! ?5 e
  7. // 我们的数据对象8 K2 Y( m, ^' H/ K0 d
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    7 Y( l* u9 {$ f% d. R, L
  9. var vm = new Vue({" v$ D7 \; Z$ @# E/ ^* c! J
  10.     el: '#vue_det',
    + Y7 }- s& ]6 P  W/ t
  11.     data: data* I( b3 j6 S. u- L
  12. })5 ^7 Z, L8 ~7 `. e9 A2 |

  13. 0 S: C! \' s2 V" Q- }" x4 B
  14. document.write(vm.$data === data) // true
    - Z4 @5 }$ |& C2 F
  15. document.write("<br>") // true
    0 f7 Y! r2 N" S; Q
  16. document.write(vm.$el === document.getElementById('vue_det')) // true2 Y, [$ B5 i0 N% j3 W$ f4 f
  17. </script>
复制代码

5 n, ?5 a+ ~  E; l/ ]  g
, n. ?2 \& p" u9 M! Z! l( q/ f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-5-2 13:33 , Processed in 0.049052 second(s), 19 queries .

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