当前位置:首页 > vue.js > 正文内容

vue做博客中的问题记录

自由小鸟6年前 (2018-08-10)vue.js2676

1,全局变量,统一管理变量文件,路径如:../src/static/css/globle.scss

<1>添加依赖 

npm install sass-resources-loader --save-dev

<2>在项目build文件夹里找到utils.js ,定位到下边代码

return {    css: generateLoaders(),
    postcss: generateLoaders(),
    less: generateLoaders('less'),
    sass: generateLoaders('sass', { indentedSyntax: true }),
    scss: generateLoaders('sass'),
    stylus: generateLoaders('stylus'),
    styl: generateLoaders('stylus')
  }

把上面这句scss: generateLoaders('sass'),改成如下

scss: generateLoaders('sass').concat(
      {
        loader: 'sass-resources-loader',
        options: {
          resources: path.resolve(__dirname, '../src/static/css/bloble.scss')//这里按照你的文件路径填写
        }
      }
    )

<3>npm run dev 这样就可以了

2,vue如何获取当前页面的url

浏览器地址:

http://localhost:8080/qust

获取方式:

1)

this.$route.path

2)

window.location.href

3)

this.$route.params

结果如下:

image.png

3,使用中用到了全局跨页面变量,所以需要用Vuex

使用Vuex的步骤:

两种方式,一种是直接引入文件就行

第二种是 npm install vuex --save

使用第二种安装包那就要在使用之前引入在main.js里使用 import Vuex from 'vuex'

/*全局变量数据注册 */
// var store = new Vuex.Store({
//   state:{
//       Msgs:{
//         logoColor:'',
//       },
//   },
//   mutations:{ //同步
//       modifyMsg (state,Obj){
//       }
//   },
//   actions:{ //可以异步
//       // fetchMsg (context){
//       //     $.ajax({
//       //             url:'PHP/GetMsgs.php',
//       //             type:'GET',
//       //             data:{},
//       //             dataType:'json',

//       //             success:function(response){
//       //                 if ( typeof response === 'string') {
//       //                     response = JSON.parse(response);
//       //                 }
//       //                 console.log(response);
//       //                 $(response).each(function(k,v){
//       //                     // console.log(v.id+v.title+v.content);
//       //                     context.commit('modifyMsg',v);
//       //                 });
//       //             }
//       //         });
//       // }
//   }
// });


参考 网址 https://www.jianshu.com/p/f393bdd3b03d

用vuex管理状态是在大型网站用,如果是小站,和小量的情况下,最好还是不用

可以用其它的办法如下:

《1》给vue根定义全局状态

《2》可以用localStorage来本地存储数据状态


5,样式优先级

《1》如果在app.vue文件里引入  

import navHeader from './components/header'

那么在header文件里定义的样式优先级高于app.vue里的样式

《2》如果例如用组件list.vue里的样式,和app.vue里的样式对比,是相同class定义的时候,app.vue里的优先级高,这时候在组件里的不会覆盖之前定义的样式文件


6,推荐静态文件例如css,images这些都放在static目录下,省了没有必要的麻烦


7,父组件传值给子组件用prop

父组件这样写如下:

image.png

以下带:引号的是动态值,不带引号的就是写一个死的值就行


子组件接受之后直接使用

props:{
    imgLists:{
        type:Array,
        required:true
    },
    moduleType: {
        type: String,
        required: true
    }
}




页面报错注意

1Vue中提示报错handlers[i].call is not a function解决方法

这种情况一般就是看看页面里有没有空的钩子函数,如果没用的删除就好了


2,VUE初写小项目问题之命令行报错:Expected indentation of 4 spaces but found 6

在vue项目中找到build文件夹 --> webpack.base.conf.js --> module

module: {    rules: [      // 把以下这句注释就可以了,这个是检测代码空格等严格模式      // ...(config.dev.useEslint ? [createLintingRule()] : []),      },


3,在使用v-for的时候需要注意加上:key="index"不然会报vue语法错误

image.png



版权声明:本文由Web学习之路发布,如需转载请注明出处。

本文链接:https://webge.net/?id=20

“vue做博客中的问题记录” 的相关文章

vue-router 路由的配置

vue-router 路由的配置

最好定义一个专门的路由配置文件来管理路由地址  接下来在点击的元素上开始设置路由path接收的 链接地址 例如以下...

十个常用的自定义过滤器

//去除空格  type 1-所有空格  2-前后空格  3-前空格 4-后空格 function trim(value, trim) {     ...

vue3

vue3

安装vite?-Vite是vue作者开发的一款意图取代webpack的工具,其实原理是利用ES6的import会发送请求加载文件的特性,拦截这些请求,做一些预编译,省去webapck沉长的打包时间安装:npm install -D create-vite-app利用vite创建 vue3项目cre...

watch监听的几种写法

var vm = new Vue({ data: { a: 1, b: 2, c: 3, d: 4, e: { f: { g: 5 } } }, watch: { a...

vue3 新属性使用

vue3 新属性使用

setUp(){} //可以把所有数据和方法都放这里面一起导出,这个是在实现挂载之前就会执行的 ref基本的数据类型 reactive可以把数组,对象转成响应式 readonly处理之后的数据不能进行修改 toRefs可以把响应对象的某个解构出来的值变成响应式,如果原数据没有key,那就会...