首页 > 其他分享 >vue学习

vue学习

时间:2022-11-21 12:02:45浏览次数:38  
标签:vue -- seller 学习 router 安装 css


#1 安装vue-cli脚手架 :sudo npm install -g vue-cli
#2 查看可以使用哪个模板 : vue list
#3 vue init webpack(模板名称) sell(项目名称)
#4 安装过程 :
-- Project name sell (项目名称sell)
-- Project description sell app (sell app)
-- Author <Seven [email protected]> (项目作者)
-- Vue build standalone
-- Install vue-router? Yes
-- Use ESLint to lint your code? Yes
-- Pick an ESLint preset Standard
-- Setup unit tests with Karma + Mocha? No (项目单元测试等,不需要)
-- Setup e2e tests with Nightwatch? Yes

-- cd sell
-- npm install (安装成功后会多一个npm_modules依赖库)
-- npm run dev (启动开发环境)


安装完成后分析整个项目流程(这里看到两篇文章比较好):
http://www.jianshu.com/p/2769efeaa10a
https://zhuanlan.zhihu.com/p/24322005

【调试工具】:
vue-devtools:在chrome安装vue-devtools,然后f12,查看就有vue这一项,方便调试
jsonview

#5 .eslintrc.js:
extends:继承一个标准的规则,在安装的时候我们自己选择的,vue预先定义了很多规则可供我们选择(https://github.com/standard/standard/blob/master/docs/RULES-en.md)
rules:除了extends继承标准,我们可以在rules对某些规则做修改,比如默认就修改了3个规则(
'arrow-parens': 0, #0忽略规则检查
'generator-star-spacing': 0, #0忽略规则检查
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 #生产环境不允许开启debug

#6 svg图片转换字体:
https://icomoon.io/->点击IcoMoon App-->Import Icons(导入自己svg)-->选择Untitled Set下的生成好的图标->Prefen..自定义名字->下载
下载后打开demo.html 查看引用代码-->将font文件夹、style.css拷贝到项目中

#7 将css改为stylus,将xx.css改名为xx.styl(stylus文件后缀为styl),同时将xx.css中的大括号"{}"、";"都去掉就可以了

#8 安装扩展"stylus"、"stylus-loader",在package.json中添加:
"stylus": "^0.54.5",
"stylus-loader": "^2.1.1",
然后在项目根目录 npm install

#9 本身flex有浏览器兼容问题,不同浏览器要写不同前缀兼容,在vue-cli中的vue-loader依赖一个postcss库,这个库自动搞定兼容写法,我们只需要按照标准写法来写就可以了
如:
在vue-cli项目中写法 : flex : 1
在普通项目中写法: flex:1;-webkit-flex:1;-mis-flex:1....

#10 vue-router(处理路由、跳转):如果在安装脚手架的时候没有选择安装vue-router,那就要npm自己安装,在package.json中的dependencies中添加:
"dependencies": {
...
"vue-router": "^2.7.0"
},
【注】:这里捎带提一下,要想在package.json安装依赖库,但是不知道版本,就去github查看

然后在项目根目录执行,npm install(官网https://router.vuejs.org/zh-cn/essentials/getting-started.html)
使用方法,在main.js中添加:
import Vue from 'vue'
import VueRouter from 'vue-router'

然后在App.vue页面中:
<template>
<div id="app">
<v-header></v-header>
<div class="tab">
<div class="tab-item">
<router-link to="/goods">商品</router-link>
</div>
<div class="tab-item">
<router-link to="/seller">商家</router-link>
</div>
</div>
<router-view></router-view>
</div>
</template>

在src/router/index.js中:
import Vue from 'vue'
import Router from 'vue-router'
import goods from '../components/goods/goods.vue'
import seller from '../components/seller/seller.vue'

//使用前先注册
Vue.use(Router)

export default new Router({
routes: [
{ path: '/goods', name: 'goods', component: goods },
{ path: '/seller', name: 'seller', component: seller }
]
})


在main.js添加默认跳转页:
router.push('/seller') // 进入首页,默认跳转

更多vue-router请看:

#11 安装vue-resource(ajax处理前后台请求),在package.json的dependencies中添加:
"dependencies": {
...
"vue-resource": "^1.3.4"
}
【注】:这里捎带提一下,要想在package.json安装依赖库,但是不知道版本,就去github查看

在main.js中注册
// 注册VueResource
Vue.use(VueResource)
在页面上用
this.$http.get('/api/seller').then((response) => {
response = response.body
if (response.errno === ERR_SUCCESS) {
this.seller = response.data
}
})



#12 alias别名:定义在webpack.base.conf.js中resolve/alias下


#13 布局之Sticky footers,使用fixed布局,内容少的时候,按钮也在底部固定位置,不会向上收;内容多的时候下拉,啦到最后,就可以看到下面固定按钮、区块,从而达到不会遮挡内容作用;
html
<div class="detail"> //最外层
<div class="detail-wrapper clearfix"> //滑动区域、填充内容容器
<div class="detail-main"></div>//具体填充的内容、滑动区域
</div>
<div class="detail-close">
<i class="icon-close"></i>
</div> //关闭按钮、区块不会随着滑动区域滑没了
</div>


css:
.detail
position: fixed;
z-index: 100
top: 0
left: 0
width: 100%
height: 100%
overflow: auto
background-color: rgba(7, 17, 27, 0.8)
.detail-wrapper
min-height :100%
.detail-main
margin-top:64px
padding-bottom:64px
.detail-close
position :relative
width :32px
height :32px
margin : -64px auto 0 auto
clear :both
font-size:32px


#14 布局之两边横线中间文字,两边线距离两边窗口有一定距离,距离文字有一定距离,线的长度自适应 ,类似" ---- 特惠 ---- "
答案:移动端使用flex布局可以解决


#15 为什么有时候在created中或者其他方法中可以直接this.xxx,而这个xxx没有在data中定义,html的模板中也可以使用这个xxx,但是有时候又不行


#16 css让文字无论多少行都垂直水平居中,display:table
<div class='parent'>
<span class="text">dddssds</span>
</div>
css:
.parent{display:table}
.parent .text{display:table-cell; vertical-align :middle}



#17 better-scroll:

17.1 package.json添加:
"dependencies": {
.....
"better-scroll":"^0.1.7"
}

17.2 先初始化scroll
methods: {
__initScroll() {
#this.menuScroll = new BScroll("dom对象,即想要滑动的div","一个对象,传入scroll参数")
#this.foodsScroll = new BScroll("dom对象,即想要滑动的div","一个对象,传入scroll参数")

this.menuScroll = new BScroll(this.$refs.menu_wrapper, {}) #v-el已经淘汰了,全用ref代替
this.foodsScroll = new BScroll(this.$refs.food_wrapper, {}) #v-el已经淘汰了,全用ref代替
}
}



#18 点击router-link向route-view传递值与模板传递值一样

#19 在组件的props接受的值是Object、Array,默认的defaults要是一个方法
props: {
selectFoods: {
type: Array,
default() {
return []
}
},
}

<?php if($user['userInfo']['ls_bf_expire_date'] >= time() && $user['userInfo']['ls_bf_start_date'] <= time() ):?>
<?php if( ($user['userInfo']['ls_zb_bf_num'] + $user['userInfo']['ls_hf_bf_num']) > 0 ):?>
<br />
<span class="supervene-inside-temporary"><span>临时并发数:</span><span><?=$user['userInfo']['ls_zb_bf_num']?></span>(直播)+<span><?=$user['userInfo']['ls_hf_bf_num']?></span>(回放) 有效期:<span><?=isset($user['userInfo']['ls_bf_start_date']) && !empty($user['userInfo']['ls_bf_start_date']) ? date('Y-m-d',$user['userInfo']['ls_bf_start_date']): ''?> — <?=isset($user['userInfo']['ls_bf_expire_date']) && !empty($user['userInfo']['ls_bf_expire_date']) ? date('Y-m-d',$user['userInfo']['ls_bf_expire_date']): ''?></span></span>
<?php endif; ?>
<?php endif;?>



#20 父组件与子组件:
传递数据:
父->子:props
子->父: -

触发方法:
子->父:(子$emit,父在子的模板标签监听子的$emit)
子:this.$emit('cart-add', 'param')
父:<child @cart-add="drop"></child> //父监听子的cart-add,监听到了就去执行自己的drop

父->子:通过ref
父:<child ref="child"></child>
this.$refs.child.childMethod()
子:{
methods:{
childMethod(){
...
}
}
}
【注】:另外也可以通过ref获取dom元素对象
<div ref='wrap'></div>
this.$refs.wrap //获取div元素对象


标签:vue,--,seller,学习,router,安装,css
From: https://blog.51cto.com/u_15882671/5873322

相关文章

  • 深度学习框架新手快速上手指南
    新手入门深度学习框架怎么办?快速、可拓展、易于使用且支持自动求导的深度学习框架-MegEngine配备了新手入门文档,助力初学者快速上手框架。文档借助了一系列的代码实战,有利......
  • vue 3.0 常用api 的简介
    vue3.0生命周期写法一和vue2.x一致区别在于(beforeUnmount、unmount)名称不一样写法二在setup中使用,需要引用如:import{onBeforeMount}from‘vue’Setup(){......
  • 没必要阅读 Vue 源码吧?
    Vue的渐进式设计使得它非常容易上手,在最简单的情况下,我们只需要引入Vue的JS文件,然后newVue()即可使用声明式渲染。Vue的文档编写也比较优秀,方便使用者一步一步深入......
  • java学习的路线和高效的学习方法
    后端路线:java基础   java集合框架javaio流java注解与反射    javaWeb     学会使用gitsql和学习jdbc     学习mybatis学习spring  ......
  • 超级详细的Vue安装与配置教程
    原文: https://www.jb51.net/article/251371.htm超级详细的Vue安装与配置教程 Vue web前端三大主流框架之一,是一套用于构建用户界面的渐进式框架,下面这篇文章主要......
  • 轻松学习jQuery事件和动画
    ✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。......
  • 【Vue3】给整个网页背景document添加单击click事件
    给整个网页背景document添加单击click事件,解决下拉菜单隐藏问题onMounted(()=>{//document.addEventListener('click',function(){alert('body1')})documen......
  • 常用AI/机器学习模型可解释技术与工具
    【编者按:随着AI模型日益复杂,模型可解释的重要性和挑战日益凸显。通过模型可解释,可以指导特征工程的优化、检测偏差、增强模型使用者对模型的可信度。Anaconda资深数据科学家......
  • swiper 8.0在vue中的使用
    页面效果: 1.安装swipernpminstallswiper2.引入组件import{Autoplay}from'swiper'3.使用组件modules:[Autoplay],4.轮播图代码<swiper......
  • Linux学习
    1、linux简介什么是Linux?Linux,全程GNU/Linux是一种免费使用和自由传播的类UNIX操作系统。Linux的发新版slackware:susesleopensusedebian:ubuntumin......