当前位置: 首页 > news >正文

Vue.js - day6

注意:

有时候使用npm i node-sass -D装不上,这时候,就必须使用 cnpm i node-sass -D

 

在普通页面中使用render函数渲染组件

 

在webpack中配置.vue组件页面的解析

  1. 运行cnpm i vue -S将vue安装为运行依赖;

  2. 运行cnpm i vue-loader vue-template-compiler -D将解析转换vue的包安装为开发依赖;

  3. 运行cnpm i style-loader css-loader -D将解析转换CSS的包安装为开发依赖,因为.vue文件中会写CSS样式;

  4. webpack.config.js中,添加如下module规则:


module: {

  rules: [

    { test: /\.css$/, use: ['style-loader', 'css-loader'] },

    { test: /\.vue$/, use: 'vue-loader' }

  ]

}
  1. 创建App.js组件页面:


  <template>

    <!-- 注意:在 .vue 的组件中,template 中必须有且只有唯一的根元素进行包裹,一般都用 div 当作唯一的根元素 -->

    <div>

      <h1>这是APP组件 - {{msg}}</h1>

      <h3>我是h3</h3>

    </div>

  </template>



  <script>

  // 注意:在 .vue 的组件中,通过 script 标签来定义组件的行为,需要使用 ES6 中提供的 export default 方式,导出一个vue实例对象

  export default {

    data() {

      return {

        msg: 'OK'

      }

    }

  }

  </script>



  <style scoped>

  h1 {

    color: red;

  }

  </style>
  1. 创建main.js入口文件:


  // 导入 Vue 组件

  import Vue from 'vue'



  // 导入 App组件

  import App from './components/App.vue'



  // 创建一个 Vue 实例,使用 render 函数,渲染指定的组件

  var vm = new Vue({

    el: '#app',

    render: c => c(App)

  });

在使用webpack构建的Vue项目中使用模板对象?

  1. webpack.config.js中添加resolve属性:

resolve: {
  alias: {
    'vue$': 'vue/dist/vue.esm.js'
  }
}

 

ES6中语法使用总结

  1. 使用 export defaultexport 导出模块中的成员; 对应ES5中的 module.exportsexport

  2. 使用 import ** from **import '路径' 还有 import {a, b} from '模块标识' 导入其他模块

  3. 使用箭头函数:(a, b)=> { return a-b; }

 

在vue组件页面中,集成vue-router路由模块

vue-router官网

  1. 导入路由模块:


import VueRouter from 'vue-router'
  1. 安装路由模块:


Vue.use(VueRouter);
  1. 导入需要展示的组件:


import login from './components/account/login.vue'

import register from './components/account/register.vue'
  1. 创建路由对象:


var router = new VueRouter({

routes: [

  { path: '/', redirect: '/login' },

  { path: '/login', component: login },

  { path: '/register', component: register }

]

});
  1. 将路由对象,挂载到 Vue 实例上:


var vm = new Vue({

el: '#app',

// render: c => { return c(App) }

render(c) {

  return c(App);

},

router // 将路由对象,挂载到 Vue 实例上

});
  1. 改造App.vue组件,在 template 中,添加router-linkrouter-view


  <router-link to="/login">登录</router-link>

  <router-link to="/register">注册</router-link>



  <router-view></router-view>

 

组件中的css作用域问题

样式的scoped是通过css的属性选择器实现的

 <style scoped>

div{

color:red;

}

</style>

抽离路由为单独的模块

 

使用 饿了么的 MintUI 组件

 

Github 仓储地址

Mint-UI官方文档

  1. 导入所有MintUI组件:


import MintUI from 'mint-ui'
  1. 导入样式表:


import 'mint-ui/lib/style.css'
  1. 在 vue 中使用 MintUI:


Vue.use(MintUI)
  1. 使用的例子:


<mt-button type="primary" size="large">primary</mt-button>

 

使用 MUI 组件

官网首页不能使用npm下载,需要手动从GitHub下载

文档地址

  1. 导入 MUI 的样式表:


import '../lib/mui/css/mui.min.css'
  1. webpack.config.js中添加新的loader规则:


{ test: /\.(png|jpg|gif|ttf)$/, use: 'url-loader' }
  1. 根据官方提供的文档和example,尝试使用相关的组件

 

将项目源码托管到oschina中

  1. 点击头像 -> 修改资料 -> SSH公钥 如何生成SSH公钥

  2. 创建自己的空仓储,使用 git config --global user.name "用户名"git config --global user.email ***@**.com 来全局配置提交时用户的名称和邮箱

  3. 使用 git init 在本地初始化项目

  4. 使用 touch README.mdtouch .gitignore 来创建项目的说明文件和忽略文件;

  5. 使用 git add . 将所有文件托管到 git 中

  6. 使用 git commit -m "init project" 将项目进行本地提交

  7. 使用 git remote add origin 仓储地址将本地项目和远程仓储连接,并使用origin最为远程仓储的别名

  8. 使用 git push -u origin master 将本地代码push到仓储中

 

App.vue 组件的基本设置

  1. 头部的固定导航栏使用 Mint-UIHeader 组件;

  2. 底部的页签使用 muitabbar;

  3. 购物车的图标,使用 icons-extra 中的 mui-icon-extra mui-icon-extra-cart,同时,应该把其依赖的字体图标文件 mui-icons-extra.ttf,复制到 fonts 目录下!

  4. 将底部的页签,改造成 router-link 来实现单页面的切换;

  5. Tab Bar 路由激活时候设置高亮的两种方式:

  • 全局设置样式如下:


.router-link-active{

    color:#007aff !important;

  }
  • 或者在 new VueRouter 的时候,通过 linkActiveClass 来指定高亮的类:


// 创建路由对象

  var router = new VueRouter({

    routes: [

      { path: '/', redirect: '/home' }

    ],

    linkActiveClass: 'mui-active'

  });

 

实现 tabbar 页签不同组件页面的切换

  1. 将 tabbar 改造成 router-link 形式,并指定每个连接的 to 属性;

  2. 在入口文件中导入需要展示的组件,并创建路由对象:


  // 导入需要展示的组件

  import Home from './components/home/home.vue'

  import Member from './components/member/member.vue'

  import Shopcar from './components/shopcar/shopcar.vue'

  import Search from './components/search/search.vue'



  // 创建路由对象

  var router = new VueRouter({

    routes: [

      { path: '/', redirect: '/home' },

      { path: '/home', component: Home },

      { path: '/member', component: Member },

      { path: '/shopcar', component: Shopcar },

      { path: '/search', component: Search }

    ],

    linkActiveClass: 'mui-active'

  });

 

使用 mt-swipe 轮播图组件

  1. 假数据:


lunbo: [

      'http://www.itcast.cn/images/slidead/BEIJING/2017440109442800.jpg',

      'http://www.itcast.cn/images/slidead/BEIJING/2017511009514700.jpg',

      'http://www.itcast.cn/images/slidead/BEIJING/2017421414422600.jpg'

    ]
  1. 引入轮播图组件:


<!-- Mint-UI 轮播图组件 -->

  <div class="home-swipe">

    <mt-swipe :auto="4000">

      <mt-swipe-item v-for="(item, i) in lunbo" :key="i">

        <img :src="item" alt="">

      </mt-swipe-item>

    </mt-swipe>

  </div>

</div>

 

.vue组件中使用vue-resource获取数据

  1. 运行cnpm i vue-resource -S安装模块

  2. 导入 vue-resource 组件


import VueResource from 'vue-resource'
  1. 在vue中使用 vue-resource 组件

转载于:https://www.cnblogs.com/QianDingwei/p/10800883.html

相关文章:

  • 图文并茂的带你彻底理解悲观锁与乐观锁
  • Python项目实战:实现QQ抽屉功能效果展示
  • JAVA之流程控制语句
  • | 刘知远:让计算机听懂人话
  • 原来... 反调试技术揭秘(转)
  • 【微信事业群】趣味面试算法题
  • Go 夜读 - 每周四晚上 Go 源码阅读技术分享
  • MAN命令
  • kettle-Excel输出
  • js知识点——2之navigator
  • WebMethod Description
  • 资源分享计划第三期 0511
  • thinkphp5---安装到宝塔出现Warning: require(): open_basedir错误
  • Linux 面试知识点笔记
  • 数据仓库方案
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 0基础学习移动端适配
  • Android单元测试 - 几个重要问题
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • CSS3 变换
  • JAVA SE 6 GC调优笔记
  • Js基础知识(一) - 变量
  • JS学习笔记——闭包
  • k8s 面向应用开发者的基础命令
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • nodejs调试方法
  • session共享问题解决方案
  • Spring声明式事务管理之一:五大属性分析
  • Sublime Text 2/3 绑定Eclipse快捷键
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 给第三方使用接口的 URL 签名实现
  • 回流、重绘及其优化
  • 基于组件的设计工作流与界面抽象
  • 让你的分享飞起来——极光推出社会化分享组件
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 通信类
  • 一些css基础学习笔记
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (09)Hive——CTE 公共表达式
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)球球大作战
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (java)关于Thread的挂起和恢复
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • .bat批处理(一):@echo off
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET微信公众号开发-2.0创建自定义菜单
  • .NET中使用Redis (二)
  • @Autowired注解的实现原理