Vue study

最近入职ibm,接手一个简单的poc项目。vue+node

一直都做得是纯java后台项目,借此机会学习一下。

学习网站当然是官网了,很好用。

https://cn.vuejs.org/v2/api/

还有就是一本书。《Vue.js实战》清华大学出版社的,在cnds上下载的pdf版本的。用ipad看起来刚刚好。

ide用的是vs code,装环境有node.js vue.js

完事后用npm install更新组件

执行npm install -g vue-cli

vue-cli用来构建vue项目。webpack init一下helloworld项目结构就构件好了。

关于前端做过一个thymeleaf项目,所涉及的只是不多,所以一些抽象概念还需要反复的去理解。

我把相应的理解记到这里。

①生命周期钩子:

https://blog.csdn.net/weixin_42782004/article/details/102518219

https://www.zhihu.com/question/50880439

其实相关的api网站上都有说明,这个自己看就好。

②指令与事件:

指令(Directives)是Vue最常用的功能。它带有前缀 v-,比如v-if,v-for,v-show

最重要的两个一个是v-bind和v-on可能实际工程很少看到,那是因为语法糖的原因。

v-bing的语法糖是:

v-on的语法糖是@

比如说<button @click="handleClose">  // <button v-on:click="handleClose"> 

<a :href="url"> // <a v-bind:href="url">

还有关于v-if和v-show的区别。

v-if时条件渲染,即只有v-if为真时才会进行编译,进行渲染。

而v-show只是简单的CSS属性切换,无论条件是否为真,都会被编译。

相比之下,v-if更适合条件不经常改变的场景,因为切换开销很大,而v-show适用于频繁切换条件。

以上说法笼统些,可以参考相面文章。

https://www.jianshu.com/p/7af8554d8f08

③实例与数据

var app = new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
  data() {
    return {
       a: 1
    }      
  }    
})
// 变量app代表这个Vue的实例,实例中其中必不可少的就是el
实例有很多内置的属性和方法。用$开头,比如app.$el
vue对象本身也代理了data对象的所有属性。
比如说app.$data.a 可以直接写成app.a
有一点注意的是为了不和vue的自身属性冲突,_和$开头不会被代理。

④插值与表达式,过滤器

这里面有个重要概念,数据双向绑定

{{}}

这个跟java都是一样的绑定的是变量即引用。关于过滤器,我们可以将他理解成为一个函数。{{}}尾部用管道符 | 调用相应的过滤器。过滤器可以定义在methods里。

{{}}里也可以也可以加入简单的表达式。比如{{ number / 10}} {{ isOK ? 'OK' : ' NO' }} 或者类似与java stream的流式处理 {{test.split(',').reverse()/join(',')}}

过滤器可以串联 {{msg | filter1 | filter2}} 也可以接受参数,当然过滤器默认第一个参数是|前的数据本身。

 ⑤生命周期

Vue内置的api,我们只需重写其内容即可。

api里有详细介绍。比较容易混的是activated和created 需要注意。

⑥计算属性

其实就是computed函数,但是methods内定义的函数也能做到。

但是这里面涉及到一个缓存问题。

computed是基于缓存的。如果数据不发生变化,computed是不会被调用的。

而methods则不同,只要重新渲染,methods就会被调用,尽管值没有发生变化。

由此可见,当遍历大数组和大量计算时,应当使用computed属性,除非你不希望得到缓存。

这里面我做了一个验证,就是看看computed和methods生命周期是什么

 比如说我点击了摸个按钮,隐藏了一个标签属性。这个操作后,因为页面变化了需要重新渲染,methods方法会被调用,而computed则不会,因为缓存的存在,并且没有改变。

 

有几个单词需要记一下。hook钩子,render渲染,关于渲染,下面这个文章写的不知对还是不对。浏览器render是个进程,里面是个多线程处理。

https://www.cnblogs.com/xiaoxiaoMrHuang/p/10916216.html

今天先写到这。

 

posted on 2021-01-17 20:18  剑姬  阅读(78)  评论(0编辑  收藏  举报

导航