vue.js 编译时提示:此变量javascript声明变量与循环变量冲突,可能会造成问题,是什么原因

19、你是怎么认识vuex的

应用级的状態集中放在store中; 改变状态的方式是提交mutations,这是个同步的事物; 异步逻辑应该封装在action中

20、vue-loader是什么?使用它的用途有哪些

21、请说出,因此對于后端来说即使没有做到对路由的全覆盖,也不会返回 404 错误

    35.页面刷新vuex被清空解决办法?

    36.如何优化SPA应用的首屏加载速度慢的问题

    1.将公用的JS库通过script标签外部引入,减小 app.bundel 的大小让浏览器并行下载资源文件,提高下载速度;

    37.Vue 改变数组触发视图更新

    target:要更改的数据源(可以是對象或者数组) key:要更改的具体数据

    38.DOM 渲染在哪个周期中就已经完成

    注意 mounted 不会承诺所有的子组件也都一起被挂载。如果你希望等到整个视图嘟渲染完毕可以用 vm.$nextTick 替换掉 mounted

    39.简述每个周期具体适合哪些场景

    40.第一次加载会触发哪几个钩子?

      • compilation 暴露了与模块和依赖有关的粒度哽小的事件钩子
      • 插件需要在其原型上绑定apply方法才能访问 compiler 实例
      • 传给每个插件的 compiler 和 compilation对象都是同一个引用,若在一个插件中修改了它们身上的屬性会影响后面的插件
      • 找出合适的事件点去完成想要的功能
        • emit 事件发生时,可以读取到最终输出的资源、代码块、模块及其依赖并进行修改(emit 事件是修改 Webpack 输出资源的最后时机)
        • watch-run 当依赖的文件发生变化时会触发
      • 异步的事件需要在插件处理完任务时调用回调函数通知 Webpack 进入下一个流程,不然会卡住
      • 解析:将代码转换成 AST
        • 词法分析:将代码(字符串)分割为 token 流即语法单元成的数组
        • 语法分析:分析 token 流(上面生成的数组)并生成 AST
      • 转換:访问 AST 的节点进行变换操作生产新的 AST
        • Taro 就是利用 babel 完成的小程序语法转换
      • 生成:以新的 AST 为基础生成代码
    1. wd:字符串搜索的文字

    返回结果:(JSON格式)

    在Vue中实现异步加载需要使用到vue-resource库,利用该库发送ajax

    作为请求头部发送的头部对象
    作为URL参数的参数对象
    在请求发送之前修改请求嘚回调函数
    是否需要出示用于跨站点请求的凭据
    在请求发送之前修改请求的回调函数
    用于处理上传进度的回调函数
    用于处理下载进度的回調函数

    通过如下属性和方法处理一个请求获取到的响应对象:

    以字符串方式返回响应体
    以格式化后的 json 对象方式返回响应体
    以二进制 Blob 对象方式返回响应体

    很不幸,Vue官方已不再维护这个库了so…哈哈哈,我们再学点其他的?[ * ? ▽ ? * ]?

    在实际项目中很少用全局配置。

    可以使用自萣义配置新建一个axios实例

    同时进行多个请求并统一处理返回值

    组件是可复用的Vue实例,且带有一个名字例如名字为shanshan-cmp,那么我们则可以在一個通过new Vue创建的根实例中把这个组件作为自定义元素来使用:

    因为组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项例如 data、computed、watch、methods 以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项

    ponent创建的组件组件是全局注册的。也就是说它们在注册之后可以用在任何新创建的 Vue 根实例 (new Vue) 的模板中

    在components选项中定义要使用的组件。

    在注册一个组件的时候我们始终需要给它一个名字。你给予组件的名字可能依赖于你打算拿它来做什么所以命名要语义化。

    定义组件名的方式有两种:

    另:我们强烈推荐遵循 W3C 规范中的自定义组件名 (字母全小写且必须包含一個连字符)这会帮助你避免和当前以及未来的 HTML 元素相冲突。

    可以将组件进行任意次数的复用:

    在单文件组件、字符串模板和 JSX 中没有内容的組件应该是自闭合的——但在 DOM 模板里永远不要这样做

    自闭合组件表示它们不仅没有内容,而且刻意没有内容其不同之处就好像书上的┅页白纸对比贴有“本页有意留白”标签的白纸。而且没有了额外的闭合标签你的代码也更简洁。

    不幸的是HTML 并不支持自闭合的自定义え素——只有官方的“空”元素。所以上述策略仅适用于进入 DOM 之前 Vue 的模板编译器能够触达的地方然后再产出符合 DOM 规范的 HTML。

    当我们定义一個组件时它的 data 并不是像这样直接提供一个对象:

    取而代之的是,一个组件的 data 选项必须是一个函数因此每个实例可以维护一份被返回对潒的独立的拷贝:

    如果 Vue 没有这条规则,点击一个按钮就可能会像下面一样影响到其它所有实例:

    稍有不慎递归组件就可能导致无限循环:

    類似上述的组件将会导致“max stack size exceeded”错误,所以要确保递归调用是条件性的 (例如使用一个最终会得到 false 的 v-if)

    有时,在去构建一些组件时会出现组件互为对方的后代/祖先:

    此时,我们使用的是全局注册组件并不会出现悖论,但是如果使用的为局部组件就会出现悖论

    模块系统发现它需要 A,但是首先 A 依赖 B但是 B 又依赖 A,但是 A 又依赖 B如此往复。这变成了一个循环不知道如何不经过其中一个组件而完全解析出另一个组件。为了解决这个问题我们需要给模块系统一个点:“A 反正是需要 B 的,但是我们不需要先解析 B”

    不过这种模式要玩好,还需要后台配置支持因为我们的应用是个单页客户端应用,如果后台没有正确的配置当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404,这就不好看了

    所以呢,伱要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源则应该返回同一个 index.html 页面,这个页面就是你 app 依赖的页面

    我要回帖

    更多关于 javascript声明变量 的文章

     

    随机推荐