我爱编程

Vue

2018-03-11  本文已影响0人  斯文的烟鬼去shi吧

为什么用框架

操作不规范,导致大量的重绘和重排,复杂的读取dom对象(js的计算要比dom便宜),代码可维护性差等。
比如说:

用什么框架

前端三大框架
angular,react,vue

对比:

如何使用

模板渲染
事件处理
计算属性
...
Cal Attrs
      <div>
          {{ helloComputed }} <!-- 时间戳3  -->
      </div>
      <div>
          {{ helloMethods() }} <!-- 时间戳 x  -->
      </div>
      <div>
          {{ ms }} <!-- 时间戳4  -->
      </div>
...
props: {
        message: String
},
data () {
        return {
            msg: 'hello',
            ms: ''
        }
    },
    computed: {
        helloComputed: function() {
            console.log('computed')
            return this.msg + 'computed' + Date.now() + this.message
        }
    },
    mounted: function () {
      console.log(this.helloComputed)   // 时间戳 1
      console.log(this.helloMethods())   // 时间戳  2
      this.msg = 'HELLO'
      console.log(this.helloComputed)   // 依赖改变,重新计算时间, 3
      this.ms = this.helloMethods()  // 只在渲染时候计算, 时间戳 4
    },
    methods: {
        helloMethods: function () {
            console.log('methods')
            return this.msg + 'methods' + Date.now() + this.message
        }
    }
- 执行异步操作不能串行返回结果,使用watch。
- 开销较大的操作,避免堵塞主线程,使用watch。
- 简单且串行返回的,使用computed
列表渲染

js的原因,无法监听特殊对象,数组。Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新。类似angular的脏检测。

条件渲染
组件

什么是组件?
封装可重用代码。
如果说函数是JS的一等公民,那么在VUE里面,组件就是一等公民。万物皆组件。
(在react里面,函数即是组件)
万法归一,在VUE也是同理。
既然这样,在写一个组件之前。我们得分清楚业务组件公共组件。然后进行职责划分,其实就是单一原则
就算业务组件可复用性没有这么高,也是应当做一些抽象,页面不要长了...
举个🌰:一任务是某个页面内添加一张卡片。一个竖着的带圆角的按钮类似样式。上面是个人信息,下面是头衔信息。数据请求的同一个接口。
就可以将这个卡片从页面抽离出来,单独做成一个卡片了。
更进一步,将上下信息分开。卡片组件引入上下部分。

生命周期: 在做某些事情之前做一些处理。可以用中间件思想看- -。
组件间通信
非业务代码

编写可以重用的组件。尽量解耦合,参数尽量简单。
一个组件实现一个功能(单一原则)

纯函数编写思想实现组件。
一样的输入得到一样的输出
why?
方便测试。
每当需要修改的时候,我都可以得到明确的输出,那么我就可以在外面套一个组件。中间做一些处理。还不需要修改原组件(开闭原则,中间件)
参数尽量简单
🌰:组件接收(target, key, value)这样的参数结构
当进行多次操作的的时候
外面再加一层组件,接收(target, obj, value = 'default')这样的参数,用for...in之类的处理

异步组件

JSX
router hash?
上一篇下一篇

猜你喜欢

热点阅读