当前位置: 首页>数据库>正文

Vue 的完整学习(Updateing)

v-html? :?

1.v-bind用来绑定数据和属性以及表达式,缩写为':'

2.v-model

使用在表单中,实现双向数据绑定的,在表单元素外使用不起作用

// 计算属性 因为是内部get方法所以调用时不用加小括号

//

计算属性比方法好 因为不管做多少次 内部只调用一次做缓存

?

@是v-on的缩写?监听dom事件 比如 @input监听输入事件

@click 监听点击事件

?

Webpack配置注意

?

Path 引用node里的包

Path调用resolve函数可以动态获取绝对路径

?

在package.json中的scripts中 引用变量名

然后 用npm run 变量名 去运行?build:”wenpack”

Npm run

bulid 运行时 优先去找本地的

npm init 初始化webpack

?

一般全局webpack在开发中不用

本地webpack根据项目需求的版本去安装对应的版本??

Npm install

webpack@对应版本--save-dev??? 3.6.0

?

DevDependencies开发时依赖

?

?

打包css时?直接在入口require 然后安装对应的依赖在webpack配置

?

对于打包不同的文件 有不同的规则需要

?

打包图片时因为找不到路径 需要在webpack中配置

publicPath:'dist/'

对图片的格式进行hash处理 防止冲突 在图片配置中设置

img/[name].[hash:8].[ext]'

?

?

网页兼容性

Es6转换es5

npm install--save-dev babel-loader@7 babel-core babel-preset-es2015

?

修改presets: ['es2015']

?

?

?

安装vue后要去webpack中配置vue?因为vue默认是用runtime vue.js

要编译 网页显示 需要用esm.js

?

?

开发vue文件?需要install vue-loader vue-template-complier

然后配置webpack? 才可以识别 vue的版本改为13.0.0 合适的版本 看需要

?

在webpack配置文件中的resolve中 配置extendions [‘.js’]?文件可以实现不加后缀名引入

?

?

plugins

:插件?用来扩展webpack的功能

?

?

打包html的plugins

Npm install html-webpack-plugin–save-dev

?

需要在webpack配置文件中引入html-webpack-plugin

然后进行模板配置

?

?

Js压缩所需要的plugin 丑化是要发布的时候才用开发阶段不推荐

Npm install uglifyjs-webpack-plugin@1.1.1–save-dev

?

若安装不了 则npm i -D uglifyjs-webpack-plugin

然后再package.json改版本号为1.1.1 然后npminstall

?

?

Cli2脚手架中使用对应的 webpack版本是3.6.0? dev-sever对应版本是2.9.3

Vue init

webpack 项目名称

?

搭建本地服务器

Npm install webpack-dev-server@2.9.3–save-dev

contentBase 决定为哪个文件夹服务 默认是根文件夹

port 端口号

inline页面实时刷新

historyApiFallback:在Spa页面 依赖html的history模式

?

在webapck配置文件的script配置命令"dev": "webpack-dev-server--open",

--open自动打开

?

?

Webpack配置之配置分离

开发时的依赖dev

生产时依赖prod

公共依赖base

?

npm install

webpack-merge --save-dev 安装工具进行合并依赖

?

在devconfig.js中配置 拉取对应

const WebpackMerge= require('webpack-merge');

const baseConfig = require('./base.config.js')

module.exports = WebpackMerge(baseConfig,{

? devServer:{

??? contentBase:'./dist',

??? inline:true,

? }

})

?

然后再package.json中配置

"dev":"webpack-dev-server --open --config ./build/dev.config.js"

????????????? 打包指定的上一层目录下../?????

path :path.resolve(__dirname,'../dist'),

?

?

vuecli 脚手架安装

npm install-g @vue/cli

?

拉取旧版本

Npm install-g @vue/cli-init

?

初始化

Vue init

webpack 项目名称

?

初始化?ES-lint是只编程规范限制?关掉限制的话 到index.js改为false

?unit单元测试 一般不用

Js以前在浏览器才能跑起来 现在直接用node加js名称 跑

?

Babelrc 是对浏览器兼容的一些配置

?

两种模式

Runtime-coplier之后的开发如果还想用到template 就使用它

Runtime-only:之后的开发使用的是.vue文件开发 就使用它

[if !supportLists]1.?????[endif]性能更高2. 代码量更少

?

?

Vci3的创建?vue? create项目名称????

Vue ui 实现用户界面管理项目

?

若想在js文件实现配置 则需要新建一个vue.config.js? 在里面进行配置 导出modules.export

?

?

?

?

箭头函数中的this是如何查找

向外层作用域中 一层层的查找this? 知道this有定义

?

?

Vuerouter学习

?

首先 必须要安装对应的vuerouter 插件 然后 引入 安装

//配置路由信息

import Vue from 'vue'

import Router from 'vue-router'

// 1.

通过vue.use安装插件 导入vue

Vue.use(Router);

//2.

创建vuerouter对象

const routes = [];

constrouter = new VueRouter({

? routes

})

// 3.

将router对象传入到vue实例中

export default? router

?

最后在main.js中使用配置router? 配置映射关系?一个映射就是一个对象

?

使用vuerouter的步骤是1.创建路由的组件2.配置路由的映射3.使用router-view和router-link

?

Router-link渲染为一个a标签

Tag=button 是渲染成一个按钮 就不是默认渲染成a标签了replace不可返回按钮

active-class="active" 意思是把默认的激活类名改为active或者在配置文件改

?

?>首页

关于

?

Redirect属性:默认跳转的网页

在newrouter里 mode:history 可以去掉网页url上的#

?

Vuerouter在全局加了一个$router属性用来跳转url this.$router.push

?

?

动态路由学习p

path: '/user/:userId',

component: User,

?

User组件中

// route当前哪个活跃

return this.$route.????? .userId;

?

动态绑定

?

懒加载 用的时再加载 加快速度

const Home = () =>? import('../components/Home')

const About = () =>?import('../components/About')

const User = () =>?import('../components/User')

?

?

query查询 ?

<router-link :to="{path:'/profile',query:{name:'linhuan',id:'001'}}">档案</router-link>或者通过button事件

再通过

{{$route.query.id}}

?

?

Router全局守卫

router.beforeEach((to,from,next)=>{

? document.title =to.matched[0].meta.title;

? next(); //next必须有

})

?

meta为每个组件的属性

aftereach 后置钩子

?

?

beforeRouterleave? 记录离开之前 当前组件的状态 下次回来时回到这个时刻

有next一般都要用next? 要在homevue中路径加入activated() {

? console.log('activated');

? this.$router.push(this.path)

},

?

beforeRouteLeave (to, from, next) {

? //导航离开该组件的对应路由时调用

? //

可以访问组件实例`this`

}

actived和disactived 只有在组件保持了keep-alive时才有效 keepalive保持只创建一次

?

keep-alive的两个属性

include 包含的才不会重复渲染?exclude?排除组件

?

tagbar项目

[if !supportLists]1.?????[endif]在style 标签中引入css @import指令

?

Css样式

Flex 水平 分布

vertical-align: middle; //设置图片与文字直接无缝隙

?

components里面放公共的组件

独立的组件放在view里面

?

?

indexOF? 注释:indexOf() 方法对大小写敏感!用来判断path是否为当前活跃route

注释:如果要检索的字符串值没有出现,则该方法返回 -1

?

v-bind :?如果过于复杂 可以放在一个methods或者计算属性中

ActiveStyle是一个计算属性 动态绑定 然而v-model是和表单有关的动态绑定

?

?

路径取别名 在webpack公共配置里 respsolve 配置 用的时候加~

?

?

Promise学习

[if !supportLists]1.?????[endif]// promise本身是一个函数 两个参数也是函数?resolve里面参数data 代码放在then里面进行处理?箭头函数只有一个参数时可以省略括号

[if !supportLists]2.?????[endif]Reject处理请求失败?失败后用catch捕获接收

?

All方法传入的是一个数组 []可以放入多个请求 当多个请求都完成时才执行then

?

Vuex

[if !supportLists]1.?????[endif]安装2.使用3.挂载在main.js

?

[if !supportLists]2.?????[endif]直接通过mutation来修改公共属性 详情见代码?两种提交风格

?

State? 公共属性

mutations 一些处理方法

getters 类似于计算属性 处理好的值放在里面 再由$store调用

getters里面的属性要传参数 必须返回一个函数 该函数的参数就是动态填入的值

?????? fifter过滤函数 过滤一些不满足条件的?find找到条件符合的函数

[if !supportLists]3.?????[endif]修改store里的state 都是通过action 添加到state里

Mutation里的函数的第二个参数 是一个值 而getters中的第二个参数是getters本身

incrementCount(state,count){

? state.counter +=count;

}

4.Vuex的响应式系统中??新添加的属性不会响应虽然可以添加到数组中 若想要响应直接用 vue的set方法 删除则用Vue的 delete方法

// 官方推荐写法

this.$store.commit(INCREMENT)?

在另外一个js文件定义好并导出

?

[if !supportLists]4.?????[endif]action 类似于mutation?就是帮mutation 处理异步操作的

看图线上的方法?action通过dispatch

Action里面的参数是$store

?

[if !supportLists]5.?????[endif]modules可以模块化?每个模块对应state mutation acition

module里的东西 自动添加到整个的state

关于 每个module里的getters 第三个参数是根state

fullName3(state,getters,rootState){

? return getters.fullName2 +rootState.counter

}

[if !supportLists]6.?????[endif]对项目结构进行分解

Axios学习 通过npm安装npm install axios –save 运行时用到 所以加save

?

[if !supportLists]1.??????????[endif]Promse方式相关

[if !supportLists]2.??????????[endif]抽取axios相关共同配置?若不想用公共配置 可以用axios的create方法进行配置?具体看文档???

[if !supportLists]3.??????????[endif]当请求方式为post 时?查询对象要放在请求体里

?

购物商城开发

[if !supportLists]1.?????[endif]一般css会有normalize这个css? 在github引入?还有base.css

[if !supportLists]2.?????[endif]取别名 html引用要加~ 创建一个vue.config.js 进行配置??然后从vuecli2中复制editorconfig 统一编程风格

[if !supportLists]3.?????[endif]Home.vue 面向home.js请求开发

[if !supportLists]4.?????[endif]在vue中请求来的数据?保存在当前组件的data中?方便使用 通过浏览器插件vuedevtool进行查看

[if !supportLists]5.?????[endif]Iview ui组件

[if !supportLists]6. [endif].tab-control{

position: sticky;

top: 44px;

}

这个sticky属性

[if !supportLists]7.?????[endif]将一个数组与另外一个数组连接

const nums1=[1,2,3,4]

const nums2 = [5,6,7]

nums2.push(...nums1);

8. display: flex;

/*布局包裹*/

flex-wrap: wrap;

justify-content: space-around; 均等分padding: 2px;

商品样式进行展示包裹样式


https://www.xamrdz.com/database/6w51997244.html

相关文章: