Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

集Vue+TyleScript+Webpack+...开发的资源流水线(前README.md文案) #11

Open
bluezhan opened this issue Aug 22, 2017 · 0 comments

Comments

@bluezhan
Copy link
Owner

集Vue+TyleScript+Webpack+...开发的资源流水线  

Vue+

Vue是东西呢?http://cn.vuejs.org/

从Vue2.0开始吧,之前有用过Vue1.0+。

由尤雨溪开发并维护的前端框架,在这两年2015、2016国内大大被重用和提起。

Vue 2.0 中文版

在国内有些大公司已经引进Vue来处理业务:

UC浏览器、稀土掘金、
滴滴, 还出了一本书 Vue.js 权威指南
饿了么,开源了一个基于Vue的UI库 GitHub - ElemeFE/element: Desktop UI elements for Vue.js 2.0
阿里的 weex GitHub - alibaba/weex: A framework for building Mobile cross-platform UI
GitLab选择了Vue https://about.gitlab.com/2016/10/20/why-we-chose-vue/

荔枝FM,移動端部分使用Vue

B 站的三个项目 (•̀ω•́ 」∠)
圈子:哔哩哔哩兴趣圈,二次元兴趣交友社区
直播(仅首页与活动页):哔哩哔哩直播,二次元弹幕直播平台
周边商城:bilibili-周边商城

上面的信息基本来自知乎》https://www.zhihu.com/question/33264609

更新项目

简书
饿了吗
网易云音乐
知乎日报

Node爬虫接口: https://ecitlm.github.io/SpliderApi/#/

开始Vue

已经在知乎发表了一篇文章 新手向:Vue 2.0 的建议学习顺序

我在这里就加几点:

  • 前端基础就不说了,HTML+CSS+JavaScript
  • 有过开发插件、模块化(module)、组件、控件
  • Node、工程化工具(grunt|gulp|webpack)
  • ....

好啦~~~

一般其实呢
最重要的就是会排查错误和查找问题,也要会最新资讯。  

npm 和cnpm 的关系  
sass、node-sass 在npm install的时候为什么老是错误  

翻墙和网络好

哈哈哈,看到下面有人评论:Vue 不难学,难的是配置 Webpack……哈哈。

所以在学前端的时候,还需要学浏览器、 HTTP、数据、网络 ...

更类似的东东

之前很久之前就是JSP,有看过、接触过JSP的同学们都知道
JSP 的语法就是在HTML里加入自定义的东西和加入了动态语言

哦,好吧,我们就说MVC模式,还有MVVM模式............
哎呀,可能早期还会接触到backbone框架的人,或者已经不是很重要了
重要的是接触过angular的人,这一下就会更加很好非常棒地.....
就是很棒,别说了

我想说的就是:

  • 分离
  • HTML动态解析模板
  • 结构化
  • 模块化
  • 工程化

一步一步来...

Vue 基础

 有个Vue社区 http://www.vue-js.com/

2.0中文社区,上面有提到,再来再次给出《Vue 2.0 中文版

 看一下2.0的API:https://vuefe.github.io/api/

组件

vue-router

来,链接在这里:vue-router 2

路由对象和路由匹配

路由对象,即$router会被注入每个组件中,可以利用它进行一些信息的获取。如

属性 说明
$route.path 当前路由对象的路径,如'/view/a'
$rotue.params 关于动态片段(如/user/:username)的键值对信息,如{username: 'paolino'}
$route.query 请求参数,如/foo?user=1获取到query.user = 1
$route.router 所属路由器以及所属组件信息
$route.matched 数组,包含当前匹配的路径中所包含的所有片段所对应的配置参数对象。
$route.name 当前路径名字

路由选项

路由选项名 默认值 作用
hashbang true 将路径格式化为#!开头
history false 启用HTML5 history模式,可以使用pushState和replaceState来管理记录
abstract false 使用一个不依赖于浏览器的浏览历史虚拟管理后端。
transitionOnLoad false 初次加载是否启用场景切换
saveScrollPosition false 在启用html5 history模式的时候生效,用于后退操作的时候记住之前的滚动条位置
linkActiveClass "v-link-active" 链接被点击时候需要添加到v-link元素上的class类,默认为active

如,我想采用一个有路径格式化并启用Html5 history功能的路由器,则可以在路由器初始化的时候,指定这些参数:

var router = new VueRouter({
  hashbang: true,
  history: true
});

请暂时参考这篇文章VueJs路由跳转——vue-router的使用

注意项

  • 响应路由参数的变化(组件内部跳同一个组件)
  • 嵌套路径的 children
  • 编程式的导航

 1、声明式:router-link :to="..." || 编程式:router.push(...)
这个方法会向 history 栈添加一个新的记录

      // 字符串  
      router.push('home')

      // 对象
      router.push({ path: 'home' })

      // 命名的路由
      router.push({ name: 'user', params: { userId: 123 }})

      // 带查询参数,变成 /register?plan=private
      router.push({ path: 'register', query: { plan: 'private' }})
      

2、声明式:router-link :to="..." replace || 编程式:router.replace(...)
   不会向 history 添加新记录,替换掉当前的 history 记录

3、router.go(n)

    // 在浏览器记录中前进一步,等同于 history.forward()
    router.go(1)

    // 后退一步记录,等同于 history.back()
    router.go(-1)

    // 前进 3 步记录
    router.go(3)

    // 如果 history 记录不够用,那就默默地失败呗
    router.go(-100)
    router.go(100)
    

4、操作 History

 你也许注意到 router.push、 router.replace 和 router.go 跟 window.history.pushState、 window.history.replaceState 和 window.history.go好像, 实际上它们确实是效仿 window.history API 的。 还有值得提及的,vue-router 的导航方法 (push、 replace、 go) 在各类路由模式(history、 hash 和 abstract)下表现一致。
  • 命名路由 和 命名视图
     命名路由就是在路由加个 name 的标签
     命名视图就是在视图加个 name 的标签,可以设置默认值

  • 重定向 和 别名
     重定向:内部跳转

    { path: '/a', redirect: '/b' }  
    { path: '/a', redirect: { name: 'foo' }}  
    { path: '/a', redirect: to => {
        // 方法接收 目标路由 作为参数
        // return 重定向的 字符串路径/路径对象
    }}

 别名:保持当前路由去访问另一个路由

    { path: '/a', component: A, alias: '/b' }
  • HTML5 History 模式

 这个给个链接自己去玩 http://router.vuejs.org/zh-cn/essentials/history-mode.html
 因为这个比较复杂和需要后台来配合...

  • 导航钩子(路由ing锁)
    正如其名,vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消。有多种方式可以在路由导航发生时执行钩子:全局的, 单个路由独享的, 或者组件级的。
     来来来:http://router.vuejs.org/zh-cn/advanced/navigation-guards.html

  • 路由元信息 (就是标志过滤处理)

  • 过渡动效 ...

  • 数据获取
     1、导航完成之后获取:先完成导航,然后在接下来的组件生命周期钩子中获取数据。在数据获取期间显示『加载中』之类的指示。  
     2、导航完成之前获取:导航完成前,在路由的 enter 钩子中获取数据,在数据获取成功后执行导航。

  • 滚动行为
    注意: 这个功能只在 HTML5 history 模式下可用。

  • 路由懒加载
     说白了就是模块化加载
    结合 Vue 的 异步组件 和 Webpack 的 code splitting feature, 轻松实现路由组件的懒加载。

Vuex 状态管理  

 登录状态,信息储存、暂存,操作状态。

 有空可以去解读源码:http://vuex.vuejs.org/en/index.html
 有中文版: https://segmentfault.com/a/1190000007108052  

Vue-loading

Vue-resource

动画过渡

http://vuejs.org/guide/transitions.html

项目目录

webpack

Vue-cli 构建工具

npm install -g vue-cli  
vue init webpack my-project

还需要一些周边知识

Node+npm Es6 Sass webpack gulp  

项目

豆瓣API 聚合数据

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant