Vue组件之style - lang - scoped 和 vue模板 sass安装

Vue组件之style - lang - scoped

在这里插入图片描述

  • lang

    • 这是标明你书写css的样式类型 有着 scss css less 默认是css
      <style lang="scss"></style>
  • scoped

    • 作用:就是设置当前组件的样式,只能在当前组件起作用
    • 注意点:就是别的组件修改当前组件的时候,是默认不课被修改的!
    • 原因:
      • 这是因为webpack打包的时候,会把js,css等文件一起打包到bundle.js文件,或者 把css另外打包到一个 .js文件,那么就会引起一个问题,就是里面的样式会共享,产生一定的影响!因此使用scoped这个属性,可以使得当前组件样式,在当前组件起作用
    • scoped的原理:
      • 属性选择器
        • 1:给当前组件所有元素添加一个自定义属性 形式 => data-v-2311c06a
        • 2:在每句css选择器的末尾(编译后的生成的css语句)加一个当前组件的data属性选择器(如[data-v-2311c06a])来私有化样式
  • 使用scoped的时候,由不得不修改其他引入的组件,那么因此有着两种方式去处理

    • 1:在新增一个 style标签 <style></style> 里面不用带scoped这个属性
    • 2:在当前类名 /deep/ (这是在css的状态下) 或者 ::v-deep (这是在scss,css都可以使用) 推荐使用
    • 3:使用 >>> 样式类名等 >>> 这是一个选择器
<style  scoped>
::v-deep .el-input .el-input-group__append {
  padding: 0;
  margin: 0;
}
::v-deep .vcode {
  position: relative;
  width: 110px;
  height: 38px;
  line-height: 30px;
  background-color: #58bc58;
}
 .el-input .vcode svg {
  position: absolute;
  top: -5px;
  left: -20px;
  height: 40px;
}
</style>

vue模板

  • 怎么使用快捷键创建一个vue模板? 这是一个值得学习的一个操作!
  • 步骤:打开VScode,找到设置 => 用户代码片段 => 找到vue.json 文件 => 替换内部文件
{
	"Print to console": {
		"prefix": "vue",
		"body": [
			"<template>",
			"  <div></div>",
			"</template>",
			"",
			"<script>",
			"export default {",
			"  name: '$TM_FILENAME_BASE',",
			"  data () {",
			"    return {",
			"    };",
			"  },",
			"  methods: {},",
			"  components: {},",
			"}",
			"",
			"</script>",
			"<style  lang=\"scss\" scoped>",
			"</style>"
		],
		"description": "Log output to console"
	}
}

vue.2 setup模板

	// vue3 模板
	"Print to console": {
		"prefix": "vue3",
		"body": [
				"<template>",
				"  <div></div>",
				"</template>",
				"",
				"<script setup lang=\"ts\" name='$TM_FILENAME_BASE'>",
				"import { } from 'vue'",
				"</script>",
				"",
				"<style  lang=\"scss\" scoped>",
				"</style>"
		],
		"description": "Log output to console"
	},

vue3.0模板

  • 使用 vuee快捷键生成
	"Print to console1": {
		"prefix": "vuee",
		"body": [
			"<template>",
			"  <div></div>",
			"</template>",
			"",
			"<script>",
			"import { defineComponent} from 'vue';",
			"export default defineComponent({",
			"  name: '$TM_FILENAME_BASE',",
			" components: {},",
			" setup() {",
			"return {}",
			"},",
			"})",
			"",
			"</script>",
			"<style  lang=\"scss\" scoped>",
			"</style>"
		],
		"description": "Log output to console"
	}

sass 的安装

  • 第一步:npm i sass
  • 第二步:npm install sass-loader@10.0.5 --save
  • 运行即可
  • 注意点:安装sass-loader 不需要安装最新的版本,否则的话会出现报错等问题,需要指定某个版本安装即可!

注意点:解决node和node-sass版本问题

npm rebuild node-sass

npm update
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!针对在Vue 2中使用postcss-px-to-viewport和scss的问题,你可以按照以下步骤进行设置: 1. 首先,安装必要的依赖: ```shell npm install postcss-px-to-viewport postcss-import node-sass sass-loader --save-dev ``` 2. 在项目根目录下创建postcss.config.js文件,并添加以下内容: ```javascript module.exports = { plugins: { 'postcss-import': {}, 'postcss-px-to-viewport': { viewportWidth: 750, // 视窗的宽度,对应设计稿的宽度 unitPrecision: 5, // 指定`px`转换为视窗单位值的小数位数 viewportUnit: 'vw', // 指定需要转换成的视窗单位,建议使用vw selectorBlackList: ['.ignore'], // 指定不需要转换的类名,可以自定义 minPixelValue: 1, // 小于或等于`1px`不转换为视窗单位 mediaQuery: false, // 允许在媒体查询中转换`px` }, }, }; ``` 3. 在Vue项目的webpack配置文件(一般是vue.config.js)中,添加sass-loader的配置: ```javascript module.exports = { css: { loaderOptions: { sass: { additionalData: `@import "@/assets/scss/variables.scss";`, }, }, }, }; ``` 4. 在你的Vue组件中,可以开始使用scss和px-to-viewport了。例如: ```vue <template> <div class="my-component">Hello World</div> </template> <style lang="scss" scoped> .my-component { width: 375px; /* 在scss中使用px作为单位 */ height: 200px; @media screen and (max-width: 768px) { font-size: 16px; } } </style> ``` 这样,你就成功配置了postcss-px-to-viewport和scss,并且在Vue项目中使用了它们。使用postcss-px-to-viewport插件后,你在scss中使用的px单位将会自动转换为vw单位,以适应不同设备的屏幕尺寸。如有需要,请根据你的具体项目需求进行调整。希望对你有所帮助!如果你还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值