日常学习记录(不定期更)

188 阅读2分钟

模块化的出现

传统的js中有大量的业务会放入一个js文件中进行封装,以及大量的mvc出现导致我们模块没有按照模块划分, 是开发难度加大,可读性差,同时不利于团队间协同开发

vue核心思想

数据驱动

组件化

vue框架和react框架对比

vue

  • 模版和渲染函数的弹性选择
  • 简单的语法和项目创建
  • 更快的渲染和更小的提及

react

  • 更适用于大型应用和更多的可测试性
  • 同时用于web端 和pc端原声app
  • 更加生态的圈带来更多支持和工具

相同点

  • 利用虚拟dom实现快速渲染
  • 轻量级
  • 服务端渲染
  • 易于集成路由的工具,打包工具以及状态管理工具
  • 优秀的支持和社区

路由

之前的路由是有服务端劫持将完成的内容返回给我们 前端路由是我们根据不同的url匹配相应的页面展示 一般在但页面应用的时候使用前端路由,大部分页面结构不变,只修改部分内容的时候使用

优点

用户体验好, 不需要每次从服务端请求,快速展示给用户

缺点

不利于seo

动态路由

path: '/index/:indexId', 获取内容:$route.params.indexId

嵌套路由

在路由下添加自路由

命名路由

在标签上添加 <router-link :to="{name:"helloWorld" }">

编程式路由

用于js中,使用

this.$router.push({path:'list'})
this.$router.push("list")
this.$router.push({path:'list?id=123'})
this.$router.push({path:'list',query:{id:123}})
this.$router.go()

第6章 商品列表模块实现

图片懒加载

vue-lazyload

第7章 Node.js基础

node的特点

  • 基于chorem的 v8引擎

    基于v8。可以扩展性的高性能服务器,在处理高并发上有优势,和c语言在性能上不相上下

  • 单线程

  • common.js规范

    • 导出

      • 默认导出

        module.exports 类似es6 中的 export default

      • 直接导出

        exports.a = 123 ES6中: expert let a=123

    • 导入

      var modA = require( "./foo" ); es6 import

  • 使用js开发后段代码

  • 非阻塞IO

7-2 创建http Server容器

  • http

    • http.createServer

      创建server后,客户端就可以访问了,可以创建静态服务

    • http.ClientRequest

  • URL

    • url.format

    • url.parse

      将地址序列化

  • Util

    • util.inspect

      将对象转为字符串

7-3 通过node加载静态页面

  • fs

    // 创建服务
    let server = http.createServer((req, res) => {
        // 拿到请求文件路径
        let pathName = url.parse(req.url).pathname
        // 读取文件进行渲染
        fs.readFile(pathName.substring(1), (err, data) => {
            if (err) {
                res.writeHead(404, {
                    'Content-Type': 'text/html'
                })
            } else {
                res.writeHead(200, {
                    'Content-Type': 'text/html'
                })
                res.write(data.toString())
            }
            res.end()
        })
    })
    
  • 调用第三方接口

mongoDB基本用法

集合的增删改查

  • 增:db.user.insert({id:123,name:'hello',age:99})
  • 改:db.user. update({id:123},{$set:{id:456}})
  • 删:db.user.remove({id:123})
  • 查:db.user.find({id:123})
  • 查第一条数据:db.user.findOne({id:23})。如果多个满足,返回查找到的第一个
  • 格式化查找数据:db.user.find({id:123}.pretty()
小于$lt: db.user.find({age:{$lt:100}})
大于$gt:db.user.find({age:{$gt:80}})
大于等于$gte:db.user.find({age:{$gte:99}})
等于$eq:db.user.find({age:{{$eq:99}})
小于等于$lte:db.user.find({age:{$lte:99}})

数据操作

  • 查看数据库:show dbs
  • 创建数据库:use demo
  • 删除数据库:db.dropDatabase()
  • 创建集合:
    • 方式1 :db.createCollection("user");
    • 方式2:db.user.insert({id:111,name:'miya'})
  • 查看集合:show collections
  • 删除集合:db.user.drop()

本地倒入数据库命令

mongoimport  -d db-demo(数据库名字)  -c users(集合名字) --file 路径