对于想了解从JavaScript获取Vue插槽中的每个HTML元素的读者,本文将是一篇不可错过的文章,我们将详细介绍vue获取插槽中的组件,并且为您提供关于1、vuevue2.0vue-clivue-
对于想了解从 JavaScript 获取 Vue 插槽中的每个 HTML 元素的读者,本文将是一篇不可错过的文章,我们将详细介绍vue获取插槽中的组件,并且为您提供关于1、vue vue2.0 vue-cli vue-router webpack、Ant Design(React/Vue) 、Element-ui(Vue)、iView(Vue)对比、antd vue 在 vue.config.js中 自定义主题颜色(定制主题、vue-cli3)、ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction的有价值信息。
本文目录一览:- 从 JavaScript 获取 Vue 插槽中的每个 HTML 元素(vue获取插槽中的组件)
- 1、vue vue2.0 vue-cli vue-router webpack
- Ant Design(React/Vue) 、Element-ui(Vue)、iView(Vue)对比
- antd vue 在 vue.config.js中 自定义主题颜色(定制主题、vue-cli3)
- ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
从 JavaScript 获取 Vue 插槽中的每个 HTML 元素(vue获取插槽中的组件)
如何解决从 JavaScript 获取 Vue 插槽中的每个 HTML 元素
我正在 VueJS 2 中创建一个自定义选择组件。该组件将由最终用户如下使用。
<custom-select>
<option value="value 1">Option 1</option>
<option value="value 2">Option 2</option>
<option value="value 3">Option 3</option>
...
<custom-select>
我知道 Vue <slot>
标签和用法。但是如何让用户提供的 <option>
标签作为 array/list ,以便我可以分别获取其值和文本以在组件内进行自定义呈现?
解决方法
那些 <option>
将在默认插槽数组 (this.$slots.default
) 中找到,您可以像这样获得 <option>
的内部文本和值:
export default {
mounted() {
const options = this.$slots.default.filter(node => node.tag === ''option'')
for (const opt of options) {
const innerText = opt.children.map(c => c.text).join()
const value = opt.data.attrs.value
console.log({ innerText,value })
}
}
}
demo
,您可以使用 v-bind 和计算属性来实现它
new Vue({
el: ''#vue'',data: {
selected: '''',values: [
{
code: ''1'',name: ''one''
},{
code: ''2'',name: ''two''
}
]
},computed: {
selectedValue() {
var self = this;
var name = "";
this.values.filter(function(value) {
if(value.code == self.selected) {
name = value.name
return;
}
})
return name;
}
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="vue">
<div>
<select v-model="selected">
<option v-for="value in values" v-bind:value="value.code">
{{ value.name }}
</option>
</select>
</div>
<strong>{{ selected }} {{ selectedValue }}</strong>
</div>
1、vue vue2.0 vue-cli vue-router webpack
因为网速还可以,所以我就是用了npm下载,可以使用淘宝镜像,把 npm 的地方换成 cnpm 就可以啦!没有安装淘宝镜像的童鞋可以搜搜。。
注:各版本内容(node 7.5.0,npm 4.1.2 ,vue 2.8.1)
查看vue版本vue -V,记得要大写
项目实际安装版本(vue:2.2.2,vue-router:2.3.0,less:2.7.2)
1、npm init webpack sousou
注:(1)sousou是项目名
(2)创建json数据时不使用router、ESlint、test内容
2、cd sousou
注:进入到创建好的sousou文件夹
3、npm install
注:下载packjson.json里面设置插件依赖!
4、npm run dev
注:项目跑起来啦!
补充说明(main .js):
版本一:
import Vue from ''vue''
import App from ''./App''
/* eslint-disable no-new */
new Vue ({
// vue 1.x 写法
el: ''#app'',
template: ''<App/>'',
components: { App }
})
版本二:
import Vue from ''vue''
import App from ''./App''
/* eslint-disable no-new */
new Vue ({
// vue 2.x 写法
el: ''#app'',
render: x => x(App)
})
大家可以更改过后再运行npm run dev,项目一样可以跑起来哦!
重点在后面
5、因先前没有下载vue-router
现在下载使用命令 :
npm install vue-router less --save-dev
注:因为要使用less预处理器,所以就和vue-router一起下载啦
6、在 src文件夹 下面新建一个 router文件夹,并在其里面新建一个router.js文件
vue-router相关设置可以查看官方中文 文档 https://router.vuejs.org/zh-c...
英文好的童鞋可以查看英文文档。
import Vue from ''vue''
import VueRouter from ''vue-router''
Vue.use(VueRouter)
const First = {template: ''<div>first的内容</div>''}
const Second = {template: ''<div>second的内容</div>''}
const Home = {template: ''<div>home的内容</div>''}
const router = new VueRouter({
mode: ''history'',
base: __dirname,
// 记得是routes,不是router,要不然显示不了导航相关页面内容
routes: [
{path: ''/'', component: Home},
{path: ''/first'', component: First},
{path: ''/second'', component: Second}
]
})
new Vue({
router,
template: `
<div id = ''new''>
<h1> 导航 </h1>
<ul>
<li><router-link to=''/''> 首页 </router-link></li>
<li><router-link to=''/first''> 第一 </router-link></li>
<li><router-link to=''/second''> 第二 </router-link></li>
</ul>
<router-view></router-view>
</div>
`
}).$mount(''#app'')
7、main.js只输入,因为main.js是入口文件
import Vue from ''vue''
import Router from ''./router''
8、npm run dev 就可以看到设置的内容啦
今天就先介绍到这里啦!
后续有更新哦!
精彩内容请看后续文档!
Ant Design(React/Vue) 、Element-ui(Vue)、iView(Vue)对比
Element-ui | iView |
---|---|
表格的合并,api表格操作列按钮用v-for vue指令结合的方式去生成批量元素,气泡卡片, | 表格头合并, api表格操作列按钮用render 函数内部实现了模板生成, |
element 生态更好,使用频率远超过iview ,element开发团队实力更强 | 整体iview 更丰富(icon组件的丰富,级联选择好,时间轴,加载进度条,气泡卡片 ,BackTop,图钉) |
element 有内置过渡动画 使得组件的切换变化 更具动感 | iview 更为中规中矩 |
antd vue 在 vue.config.js中 自定义主题颜色(定制主题、vue-cli3)
我在 自定义less变量 时,less、less-loader的版本号不同,会报奇怪的错误
此篇,定制主题 也会根据版本号报不同的错误
最终!我选用的版本 less@3.0.4、less-loader@5.0.0
这篇也基于 less@3.0.4
、less-loader@5.0.0
进行定制主题操作
一、vue.config.js文件
module.exports = {
// 增加这部分代码
css: {
requireModuleExtension: true,
loaderOptions: {
less: {
modifyVars: {
// less vars,customize ant design theme
''primary-color'': ''#6F48FF'',
''link-color'': ''#6F48FF''
},
// do not remove this line
javascriptEnabled: true
}
}
}
}
上面的 modifyVars
参数可以自定义各种主题色,以下是常用的几种:
@primary-color: #1890ff; // 全局主色
@link-color: #1890ff; // 链接色
@success-color: #52c41a; // 成功色
@warning-color: #faad14; // 警告色
@error-color: #f5222d; // 错误色
@font-size-base: 14px; // 主字号
@heading-color: rgba(0, 0, 0, 0.85); // 标题色
@text-color: rgba(0, 0, 0, 0.65); // 主文本色
@text-color-secondary: rgba(0, 0, 0, 0.45); // 次文本色
@disabled-color: rgba(0, 0, 0, 0.25); // 失效色
@border-radius-base: 4px; // 组件/浮层圆角
@border-color-base: #d9d9d9; // 边框色
@box-shadow-base: 0 2px 8px rgba(0, 0, 0, 0.15); // 浮层阴影
也可以点击查看 所有样式变量
二、修改antd样式引用文件
因为在步骤一中,我们是在 less
中定义的主题色
对应的,我们在main.js中也需要引用 less格式的antd样式文件
将原本的
import ''ant-design-vue/dist/antd.css''
修改为:
import ''ant-design-vue/dist/antd.less''
三、重新启动,即可生效
ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
1.Action、RenderAction加载办法的视图,履行Controller → Model → View的次序,然后把产生的页面带回到本来的View中再回传。而Partial、RenderPartial直接加载视图文件内容
2.Html.Partial可以直接供给用户控件名作为参数,而Html.Action须要有对应的Action,在Action内部返回PartailResult(即retun PartialView())。
3.对于简单的没有任何逻辑的用户控件,推荐应用Html.Partial;对于须要设置一些Model的用户控件,推荐应用Html.Action。当然,有Model数据也是可以应用Html.Partial办法的,可以看办法的重载。
4.Html.Partial与Html.Action有啥区别呢?区别就是,Html.Partial只有一个视图,而Html.Action除了视图,还真的有个Action跟它对应,所以,Html.Action功能比Html.Partial要强。
如何调用这个Html.Partial
//1、以视图名使用当前文件夹下的视图(如果没有找到,则搜索 Shared 文件夹)
@Html.Partial(
"_test"
)
//加载对应文件 /Views/Product/_test.cshtml
//2、依据应用根路径定位视图// 以 "/" 或 "~/" 开头的路径代表应用根路径
@Html.Partial(
"~/Views/Product/_test.cshtml"
)
@Html.Partial(
"/Views/Product/_test2.cshtml"
)
//3、加载其他目录的 视图文件
//注意:需要复制views中的web.config 到template目录,否则会提示 "/template/A.cshtml”处的视图必须派生自 WebViewPage 或 WebViewPage<TModel>"
@Html.Partial(
"/template/A.cshtml"
)
今天关于从 JavaScript 获取 Vue 插槽中的每个 HTML 元素和vue获取插槽中的组件的介绍到此结束,谢谢您的阅读,有关1、vue vue2.0 vue-cli vue-router webpack、Ant Design(React/Vue) 、Element-ui(Vue)、iView(Vue)对比、antd vue 在 vue.config.js中 自定义主题颜色(定制主题、vue-cli3)、ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction等更多相关知识的信息可以在本站进行查询。
本文标签: