vue初学——vue数据与方法

Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。
Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。
结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。

上次说到vue的学习,不需要先安装cli和webpack
现在我们按照官网的引导搭建自己的学习页面

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue"></script>
    </head>
    <body>
        <div id="app">
            {{message}}
        </div>
        
        <script type="text/javascript">
            var app=new Vue({
                el:'#app',
                data:{
                    message:'hello vue!'
                }
            });
        </script>
    </body>
</html>

网页上直接访问该文件的目录D:/dev/code1/vue learning/test1.html
显示
当当当,出来啦!

后面我们将在这个文件上继续扩展学习接下来的数据与方法。

上面代码块中message的信息显示,被双括号({{…}})包裹,其实就是模板语法的标识。
ps:我在搭建这个简单的页面的时候,没有好好的去阅读官网的步骤,大致读了之后发现如此简单,立马开干就上手去写了HTML文件,然后在浏览器访问后,一直显示{{message}}},我当时搞了好一会儿觉得是不是vue没有引进来啊,HTML的一些标签没写好啊。。。最后发现div块上的id没写,vue在初始化dom的时候,找不着地方,当然不会讲数据显示出来了,晕死。。。

数据

为了更直观的看到数据的绑定初始化,我将自己项目中通常用到的例子贴出来
将body标签中的显示稍微改动下

<body>
    <div id="app">
        {{message}}{{number}}
        <button v-on:click="change()">点我</button>
    </div>
    <script type="text/javascript">
        var data = {
            message:'hello vue!',
            number:0
        }
        var app=new Vue({
            el:'#app',
            data:data,
            methods:{
                change(){
                    data.number += 1;
                }
            }
        });
    </script>
</body>

访问链接,number的初始化为0
在这里插入图片描述
点击“点我”,我们会发现number的数据会随着每次点击增加1。
在这里插入图片描述
这里就涉及到vue的dom初始化,我们再vue实例外定义了data对象,然后在初始化vue的时候,vue就将外面的data加载到vue实例面。在我们修改data对象时(data是vue实例中的一个属性),vue绑定的元素值就会跟着进行改变。
当一个Vue实例被创建时,它将data 对象中的所有的属性加入到Vue的响应式系统中。当这些属性的值发生改变时,视图将会产生“响应”,即匹配更新为新的值,即双向绑定
如果我们把外层的data对象去掉,将其中的属性直接贴到vue中的data后面,如下:

<script type="text/javascript">
	var app=new Vue({
       el:'#app',
       data:{
           message:'hello vue!',
           number:0
       },
       methods:{
           change(){
               data.number += 1;
           }
       }
   });
</script>

然后再次刷新页面,我们再点击按钮,发现数字没有发生变化。这说明这个data.number它不生效了。
F12看下,发现报了如下的错,data未定义
在这里插入图片描述
那就说明了 vue的实例中没有data这个属性,但是有number这个属性,如果把data换成app,那它就能生效了。

方法

这里先说一下freeze()这个方法,这个方法在官网教程里也有说明,就是凡被这个方法锁定的变量初始化后无法进行改变

然后,就是watch()这个方法,主要是监听实例中属性发生变化的,可在变化前,变化后怎么处理自己需要的业务。

当然了,这里还有其他的方法,如:
mounted()——在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。
create()——在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。

等等。。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值