vue使用日记

https://cn.vuejs.org/api/options-state.html#methods

使用vue-cli生成单页应用框架, npm run serve之后即可开始修改src目录下面的js css文件(index.html可以保持不动), 自动热部署 , 前端框架就已经搭起来了。

webpack 用于单页应用js的构建 自动引入到index.html , 如果有多个页面,cli要选择上vue-router, 因为其他页面引入js有点麻烦, 路由要由vue-router完成

调转时 传参是个问题,由vuex来管理

以上任务都由前端开发完成
如果后端生成多个html, 那就要前端发布js之后 由后端同学手动引入js。 前后端分离就完成了
https://forum.vuejs.org/t/built-files-will-be-auto-injected/34158

1.import不生效排查:



import export时都要用{}, 并且内容名称要一致

--

2.为什么需要webpack

编写多个js后 bundle到一个文件 方便发布和引用 (隐语:所有东西放在一个文件,首次加载会有多慢? 不过优化加载 不是webpack负责的)

3.node对于前端来说不是必须的

可以使用nginx代替
node的作用实际和maven差不多, 把前人写的js库 放在本地某个文件夹, 不联网的时候也能进行开发

v-blind: 简写成: 查找data中的字段并显示
v-on: 简写成 @ 事件绑定,方法在methods中定义 @click='xxxx(xx)' @dblclick
v-model 双向绑定

watch 监听变化情况
computed 计算新值

各个vue之间的状态共享要使用vue.state插件

跳转到另一个vue, this.$router.push('/xxx') 另一个vue中查看数据this.$route.param.xxx

4.参数自动检查


有时需要自己写校验函数

5.新属性增加不会自动更新页面?

https://cn.vuejs.org/v2/guide/reactivity.html#检测变化的注意事项


比如elementUI中的日期选择, 回显的时候要创建新数组, 不能使用selectTime[0] selectTime[1]去赋值,这样会被认为值没变 导致页面没显示

5.1 element-ui select数据回显

第一、加载的顺序:先加载下拉框要选择的数据。
第二、要保证select下拉的ID和v-model里边的id保持一致 (数据类型也要一致, 数字和字符串不会自动匹配)。elementUI就会自动的将数据回显了。

5.2 v-model绑定到深层对象的属性xxx.xxx.xxx上, 属性值不更新 页面不更新

非root data的属性, 不能检测到值有变化, 造成页面也不会刷新

示例:

            <el-switch v-model="spuForm.scoreExchangeFlagxx" @change="changVx2"> </el-switch>
            <el-switch v-model="spuForm.ptFlag" active-value="1" inactive-value="0" @change="changVx1"> </el-switch> 

现象:一个switch生效,另一个不生效; 点击一个,另外一个联动了, fk

修改方案: 绑定到不同的对象上

<el-switch v-model="scoreExchangeFlagxx" @change="changVx2"> </el-switch>
<el-switch v-model="spuForm.ptFlag" active-value="1" inactive-value="0" @change="changVx1"> </el-switch> 

6.子组件不能删除自己?

$.emit 触发父组件的事件
this.$nickTick() 强制刷新子组件 和v-if一起使用
数组变化问题 https://cn.vuejs.org/v2/guide/list.html#注意事项

7.给子组件传值时用中划线

props data的区别

props 主要用来接收父组件传递的参数
data 是DOM渲染数据绑定用的

后端接口还没定,前端如何测试开发

chrome vue控制台自己造数据。。

断点

chrome里面不知道断点打在哪? 在webpack目录下

缓存列表页的查询条件

<keepAlive>
    <route-view v-if="$route.meta.keepAlive"></route-view>
</keepAlive>

route-view是所有匹配到的页面渲染位置, ><中间不需要加其他参数。
这段代码不是写在js里面, 点击事件的路由响应由vue-router寻找页面, 这里只负责指定路由页面渲染的位置就行了,是在点击之前就定义好的
https://router.vuejs.org/zh/guide/#html

路由找不到?

拼写错误

路由参数

有两种
url上显示的参数 this.$route.query ,易用性上更好
url上不显示的参数 this.$route.param ,安全性更好,就是不直观 不好用

alert不生效?

created生命周期中使用alert 是不生效的, 尤其不要在这里做兼容性测试, 比如微信内置浏览器

自定义组件

 <slot></slot>

默认插槽 , 在原有的模板外直接添加自定义组件 而且不影响原有样式
场景: 手势探测器 @see flutter
https://github.com/ElemeFE/element/blob/dev/packages/card/src/main.vue

posted @ 2019-05-25 16:48  funny_coding  阅读(429)  评论(0编辑  收藏  举报
build beautiful things, share happiness