Vue超详细学习笔记(2)

  1. 实现响应式的数据绑定和组合视图组件

1.1 下载node.js


http://nodejs.cn/

  • 无脑点击下一步

1.2 live-server使用


win+r输入cmd进入

安装cnpm,淘宝镜像

npm install -g cnpm --registry=https://registry.npm.taobao.org

对npm进行全局安装

cnpm install live-server -g #国内镜像

查看版本,看到版本号—>安装成功

在这里插入图片描述

清除缓冲

npm cache clean -f

1.3 Vue案例


在这里插入图片描述

ctrl+~键打开命令框

输入

mkdir temp//创建文件夹

编写index.html

VueDemo

The First Vue Demo

{{mes}}

初始化项目,生成package.json

npm init

在这里插入图片描述

在项目目录中打开

live-server

运行结果

在这里插入图片描述

2. 常用指令及案例

==============================================================================

2.1 v-if和v-show


  • v-if是vue的一个内部指令,作用于HTML中,根据表达式的值的真假条件,销毁或重建元素;

  • v-show根据表达式之真假值,切换元素的 display CSS 属性

2.2 v-for


v-for指令是循环渲染一组data中的数组,需要以 item in items 形式,items是源数据数组并且item是数组元素迭代的别名。

vfor

是否显示

    • {{h}}
    • {{person.pid}}- {{person.pname}}- {{person.page}}


      msg

      Two title

      在这里插入图片描述

      • 先在js里定义了hobby、persons数组,然后在模板中用v-for循环出来,需要那个html标签循环,v-for就写在那个上边;

      2.3 v-text和v-html


      当我们网速很慢或者javascript出错时,会显示{{xxx}};Vue提供的v-text、v-html可以解决这个问题;

      v-text、v-html

      hello

      abc

      在这里插入图片描述

      2.4 v-on


      v-on 就是监听事件,可以用v-on指令监听DOM事件来触发一些javascript代码;

      • 还可以使用@click代替v-on
      Add

      number:{{num}}

      +

      -

      <button @click=“add”>加

      <button @click=“sub”>减

      在这里插入图片描述

      2.5 v-model


      绑定数据源:就是把数据绑定在特定的表单元素上,可以很容易的实现双向数据绑定;我们需要vue实例可以帮我们渲染数据并响应式的监听数据修改,同时我们还需要监听用户行为,如果用户在标签上面修改了数据,我们需要获取到数据可以使用v-mode指令;

      v-model

      number1:{{num1}}

      number2:{{num2}}

      number1:

      number2:

      <button @click=“add”>+

      <button @click=“sub”>-

      result:{{result}}

      在这里插入图片描述

      2.6 v-bind


      • v-bind是处理HTML中的标签属性的
      v-bind

      • 在html中用v-bind:src=”imgSrc”的动态绑定了src的值,这个值是在vue构造器里的data属性中找到的;

      3. Vue-cli

      ==============================================================================

      Vue-cli是vue官方出品的快速构建单页应用的脚手架,致力于将 Vue 生态中的工具基础标准化。它确保了各种构建工具能够基于智能的默认配置即可平稳衔接,这样可以专注在撰写应用上,而不必花好几天去纠结配置的问题。

      3.1 安装vue-li


      查看版本,出现版本正确

      在这里插入图片描述

      用npm命令安装vue-cli

      cnpm install vue-cli -g

      • -g:代表全局

      查看版本

      在这里插入图片描述

      • 如果出现版本号,说明已经顺利的把vue-cli安装成功

      3.2 初始化项目


      需要用vue init命令来初始化项目

      vue init

      • init:表示初始化项目

      • < template-name >:表示模板名称,vue-cli官方为我们提供了5种模板,一般使用webpack(全面的webpack+vue-loader的模板,功能包括热加载,linting,检测和CSS扩展);

      • < project-name >:项目名字

      输入命令后,会询问几个简单的选项如下:

      在这里插入图片描述

      • Project name :项目名称 ,如果不需要更改直接回车就可以了,不能使用大写;

      • Project description:项目描述,默认为A Vue.js project,直接回车,不用编写;

      • Author:作者;

      • Install vue-router? 是否安装vue的路由插件需要安装,选择Y;

      • Use ESLint to lint your code? 是否用ESLint来限制你的代码错误和风格,不需要输入n;如果是大型团队开发,最好是进行配置;

      • setup unit tests with Karma + Mocha? 是否需要安装单元测试工具Karma+Mocha,这里不需要,所以输入n;

      • Setup e2e tests with Nightwatch?是否安装e2e来进行用户行为模拟测试,我们这里不需要,所以输入n;

      如果下载超慢可以使用下面指令后再创建项目:

      cnpm install --save-dev webpack

      3.3 运行项目


      npm run dev

      在这里插入图片描述

      在这里插入图片描述

      3.4 结束运行


      Ctrl+C

      3.5 Vue-cli案例


      在这里插入图片描述

      3.5.1 App.vue

      首页

      Form

      Main

      3.5.2 HelloWord.vue

      {{ msg }}

      默认页面

      3.5.3 my.vue

      左边区域

      表单提交

      UserName:

      PassWord:

      age:

      <button @click=“login”>LOGIN

      3.5.4 index.js

      import Vue from ‘vue’

      import Router from ‘vue-router’

      import HelloWorld from ‘@/components/HelloWorld’

      import MyVue from ‘@/components/my’

      import Main from ‘@/view/main.vue’

      Vue.use(Router)

      export default new Router({

      routes: [

      {

      path: ‘/’,

      name: ‘HelloWorld’,

      component: HelloWorld

      },

      {

      path:‘/my’,

      component:MyVue

      },

      {

      path:‘/main’,

      component:Main

      }

      ]

      })

      3.5.5 结果展示

      在这里插入图片描述

      在这里插入图片描述

      3.5.6 对应关系

      在这里插入图片描述

      4. Vue-router

      =================================================================================

      Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得轻松;这里的路由并不是指我们平时所说的硬件路由器,而是SPA(单页应用)的路径管理器也就是说vue-router就是我们WebApp的链接路径管理系统

      4.1 安装vue-router


      如果用vue-cli脚手架来搭建项目,配置过程会选择是否用到路由,如果选择y,后面下载依赖会自动下载vue-router;

      用npm命令安装vue-router

      npm install vue-router

      4.2 路由文件


      在这里插入图片描述

      4.3 增加一个my.vue


      地址栏输入http://localhost:8080/#/my的时候出现一个新的页面;

      1. 在src/components目录下,新建 my.vue 文件

      左边区域

      表单提交

      UserName:

      PassWord:

      age:

      <button @click=“login”>LOGIN

      1. 引入MyVue组件:我们在router/index.js文件的上边引入MyVue组件

      import MyVue from ‘@/components/my’

      1. 增加路由配置:在router/index.js文件的routes[]数组中,新增加一个对象,代码如下:

      {

      path:‘/my’,

      component:MyVue

      }

      4.4 router-link制作导航


      首页

      • 导航路径,在router/index.js文件里配置的path值,如果要导航到默认首页,只需要写成 /

      4.5 传值问题


      4.5.1 通过name传值

      {

      path:‘/userInfo’,

      name:‘This is Kak’,

      component:User

      },

      //接收

      currentUser:{{$route.name}}

      4.5.2 通过标签to传值

      • to属性进行传参,需要您注意的是这里的to要进行一个绑定,to前面要加冒号

      商品管理

      • name:就是我们在路由配置文件中起的name值。

      • params:就是我们要传的参数,它也是对象形势,在对象里可以传递多个值。

      {

      path:‘/goodsInfo’,

      name:‘eqp’,

      component:Goods

      }

      • name:就是传过来的name

      name:{{$route.name}}

      pname:{{$route.params.pname}}

      age:{{$route.params.age}}

      • 就收数据

      4.5.3 通过URL传递参数

      • 传入参数

      其他管理

      • 路由配置文件里制定了这两个值

      {

      path:‘/otherInfo/:name/:age’,

      component:Others

      }

      • 接收值

      name:{{$route.params.name}}

      age:{{$route.params.age}}

      4.6 子路由


      也就是菜单的路由方式,子路由的情况一般用在一个页面有他的基础模版,然后它下面的页面都隶属于这个模版,只是部分改变样式;

      在需要的单页面多显示的位置加入

      编写router/index.js代码

      export default new Router({

      routes: [

      {

      path: ‘/home’,

      name: ‘Home’,

      component: Home,

      children:[

      {path:‘/’,component:Welcome},

      {path:‘/userInfo’,component:User},

      {path:‘/goodsInfo’,name:‘eqp’,component:Goods},

      { path:‘/otherInfo/:name/:age’,component:Others}

      ]

      },

      ]

      })

      4.7 重定向


      把原来的component换成redirect参数就可以;

      {

      path:‘/otherInfo/:name/:age’,

      redirect:Others

      }

      5. 使用Element组件

      ==================================================================================

      Element,一套基于 Vue 2.0 的桌面端组件库;

      5.1 安装Element组件


      用npm命令安装Element组件

      npm install element-ui --S

      导入element的js库以及样式

      import ElementUI from ‘./router’

      import ‘element-ui/lib/theme-chalk/index.css’

      //全组件加载

      Vue.use(ElementUI);

      5.2 引入案例


      5.2.1 进入官网、找需要的类型、查看代码

      在这里插入图片描述

      在这里插入图片描述

      5.2.2 编写login.vue

      加入对应的样式

      登录页面

      <el-button type=“primary” @click=“submitForm(‘ruleForm2’)”>提交

      <el-button @click=“resetForm(‘ruleForm2’)”>重置

      回到首页

      5.2.3 在index.js中引入

      {

      path:‘/login’,

      component:Login

      }

      5.2.4 页面展示

      在这里插入图片描述

      6. 综合案例

      ===========================================================================

      在这里插入图片描述

      6.1 整体思路


      将默认页面修改为index.vue,将页面分为(heard、Main、footer)三部分;左上角跳转登录和添加活动界面;中间是轮播图;点击添加活动跳转添加页面;点击登录跳转登录界面;只要是admin跳转主页面、不是则回到首页;进入主页面首先显示欢迎页,然后利用子路由单页多显示;

      6.2 index.js


      import Vue from ‘vue’

      import Router from ‘vue-router’

      import ElementUI from ‘element-ui’

      import ‘element-ui/lib/theme-chalk/index.css’

      import Home from ‘@/views/home’

      import User from ‘@/views/userInfo/usersinfo’

      import Goods from ‘@/views/goodsinfo/showGoods’

      import Others from ‘@/views/other/otherView’

      import Login from ‘@/views/login.vue’

      import Register from ‘@/views/register.vue’

      import Welcome from ‘@/views/welcome’

      import FirstPage from ‘@/views/index’

      Vue.use(Router)

      Vue.use(ElementUI);

      最后:

      总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。

      面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

      开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

      font-family: PingFang SC

      }

      .name{

      margin-left: -237px;

      padding: 10px;

      font-style: inherit

      }

      5.2.3 在index.js中引入

      {

      path:‘/login’,

      component:Login

      }

      5.2.4 页面展示

      在这里插入图片描述

      6. 综合案例

      ===========================================================================

      在这里插入图片描述

      6.1 整体思路


      将默认页面修改为index.vue,将页面分为(heard、Main、footer)三部分;左上角跳转登录和添加活动界面;中间是轮播图;点击添加活动跳转添加页面;点击登录跳转登录界面;只要是admin跳转主页面、不是则回到首页;进入主页面首先显示欢迎页,然后利用子路由单页多显示;

      6.2 index.js


      import Vue from ‘vue’

      import Router from ‘vue-router’

      import ElementUI from ‘element-ui’

      import ‘element-ui/lib/theme-chalk/index.css’

      import Home from ‘@/views/home’

      import User from ‘@/views/userInfo/usersinfo’

      import Goods from ‘@/views/goodsinfo/showGoods’

      import Others from ‘@/views/other/otherView’

      import Login from ‘@/views/login.vue’

      import Register from ‘@/views/register.vue’

      import Welcome from ‘@/views/welcome’

      import FirstPage from ‘@/views/index’

      Vue.use(Router)

      Vue.use(ElementUI);

      最后:

      总结来说,面试成功=基础知识+项目经验+表达技巧+运气。我们无法控制运气,但是我们可以在别的地方花更多时间,每个环节都提前做好准备。

      面试一方面是为了找到工作,升职加薪,另一方面也是对于自我能力的考察。能够面试成功不仅仅是来自面试前的临时抱佛脚,更重要的是在平时学习和工作中不断积累和坚持,把每个知识点、每一次项目开发、每次遇到的难点知识,做好积累,实践和总结。

      开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

    • 19
      点赞
    • 11
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值