专栏名称: JavaScript
面向JavaScript爱好人员提供:前端最新资讯、原创内容、JavaScript、HTML5、Ajax、jQuery、Node.js等一系列教程和经验分享。
目录
相关文章推荐
51好读  ›  专栏  ›  JavaScript

7个有用的 Vue开发技巧

JavaScript  · 公众号  · Javascript  · 2019-06-06 08:36

正文

请到「今天看啥」查看全文


会通过 object.defineProperty 对数据进行劫持,来实现视图响应数据的变化,然而有些时候我们的组件就是纯粹的数据展示,不会有任何改变,我们就不需要 vue 来劫持我们的数据,在大量数据展示的情况下,这能够很明显的减少组件初始化的时间,那如何禁止 vue 劫持我们的数据呢?可以通过 object.freeze 方法来冻结一个对象,一旦被冻结的对象就再也不能被修改了。

  1. export default {

  2. data: () => ({

  3. users: {}

  4. }),

  5. async created() {

  6. const users = await axios.get("/api/users");

  7. this.users = Object.freeze(users);

  8. }

  9. };

另外需要说明的是,这里只是冻结了 users 的值,引用不会被冻结,当我们需要 reactive 数据的时候,我们可以重新给 users 赋值。

  1. export default {

  2. data: () => ({

  3. users: {}

  4. }),

  5. async created() {

  6. const users = await axios.get("/api/users");

  7. this.users = Object.freeze(users);

  8. },

  9. methods:{

  10. // 改变值不会触发视图响应

  11. this.data.users[0] = newValue

  12. // 改变引用依然会触发视图响应

  13. this.data.users = newArray

  14. }

  15. };

3 去除多余的样式

随着项目越来越大,书写的不注意,不自然的就会产生一些多余的 css,小项目还好,一旦项目大了以后,多余的 css 会越来越多,导致包越来越大,从而影响项目运行性能,所以有必要在正式环境去除掉这些多余的css,这里推荐一个库 purgecss ,支持 CLI、JavascriptApi、Webpack 等多种方式使用,通过这个库,我们可以很容易的去除掉多余的 css。

我做了一个测试, 在线DEMO

  1. Hello Vanilla!

  2. We use Parcel to bundle this sandbox, you can find more info about Parcel

  3. href="https://parceljs.org" target="_blank" rel="noopener noreferrer">here.

  1. body {







请到「今天看啥」查看全文


推荐文章
不贱不散  ·  我滴嘛,太赤激了!
8 年前
金融读书会  ·  研究生了,你会查文献吗?
7 年前
哥跟涨停有一腿  ·  10月12日三季报能否成新主线?
7 年前