Vue

  • vue是一套用于构建用户界面的渐进式框架,采用自底向上的增量设计。可以先用自己想要的部分,然后慢慢加第三方库。而不像react之类的要求全套引入才能使用其一。
  • 注意,实例的数据和实例data的数据是同步的,除非data对象被Object.freeze(obj)冻结则不再更新视图。但只有创建实例的时候绑定的data数据才是响应式的,后续新增的数据vue检测不到不会发生视图变化。所以可能用到的数据要在data里面初始化为空。vue中有些默认属性以$开头,如vm.$data === data
  • 生命周期:beforeCreated之前没data;created之后拿到vue实例和this,不过还没拿到dom;mounted之后可以获取dom节点。
  • {{msg}}可以绑定一次值,之后数据改变显示不会更改,注意会影响该节点下所有数据。使用可以解析html。为了避免xss攻击,绝对不要对用户输入的内容用v-html。在布尔特性如:disabled的值下,绑定值会被转为布尔。正常没有冒号则会转为字符串。
  • 插值可以为表达式,不过只能为一个(三元和计算都可以,如果复杂计算尽量用computed属性)。该表达式是在沙盒环境运行的,只能访问Date、Math等白名单,不能访问用户自定义的全局变量。
  • 计算属性有缓存,只有相关响应式依赖(绑定的数据,Date.now()不算)发生改变时才会计算,否则返回原值,大量计算的时候效率高。而函数则每次都执行。而监听属性常用于做一些异步操作,对于赋值计算最好用computed好过watch。计算属性还可以设置setter和getter方法。
  • 绑定类:
    或者对象以及计算属性
    或者数组
    也可以这样写
    。注意用-分隔要加引号,否则需改成驼峰式。
  • 绑定样式:
    或者
    或者数组
    。如果需要,vue可以自动检测为css添加浏览器引擎前缀,也可以手动指定
    ,如果不需要前缀会选择flex。
  • 条件渲染:v-if、v-else-if、v-else(后两个必须跟在v-if或v-else-if后面)。如果隐藏多个组件可以用